博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PowerShell脚本保存密码
阅读量:6711 次
发布时间:2019-06-25

本文共 1299 字,大约阅读时间需要 4 分钟。

  当使用批处理或VBS脚本访问远程计算机的时候,我们可以直接将其用户名和密码写入到脚本中,但是在PowerShell中,则不允许直接将密码写入其中,这虽然在很大程度上提高了脚本的安全性,但有时候却也给我带来了一些麻烦。

  如果我们要获取计算机(192.168.12.6)的系统信息,则需要使用Get-Credential命令来提供凭据(用户名+密码),可以先将凭据保存到一个变量中,如

  $a = get-credential

  回车后则弹出窗口要求输入用户名和密码,输入完成后,则会保存在变量$a中,然后在通过如下命令进行调用

  Get-WmiObject Win32_OperatingSystem -Credential $a -Computer 192.168.12.6

  如果只是一台计算机还好,如果有多台计算机,并且其用户名和密码都不相同,则需要输入N遍,带来很大的麻烦。为了解决这个问题,我们可以通过新建对象的方法来保存用户名和密码,将其写入到脚本中。

  下面先来看看$a对象的类型及其相应的属性,可以得知对象类型名称为:System.Management.Automation.PSCredential,其中的Password和UserName都是其属性,所以可以新建一个该类型的对象。在此处需要注意的是Password类型为SecureString,UserName类型为String,所以需要将明文的Password转换为安全字符串,可以使用ConvertTo-SecureString命令。

详细代码如下:

1 $UserName = "administrator"2 #将纯文本字符串“boc.123”转换为安全字符串,并将结果存储在 $Password变量中3 $Password = ConvertTo-SecureString "boc.123" -AsPlainText –Force4 #新建对象5 $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)6 Get-WmiObject Win32_OperatingSystem -Credential $cred -Computer 192.168.12.6

 

方法二:

1 $sec = New-Object System.Security.SecureString2 $user = "administrator"3 $pw="password"4 foreach($item in ($pw.GetEnumerator()))5     { $sec.AppendChar($item) }6 $Cred = New-Object System.Management.Automation.PSCredential ($user,$sec)

 

转载于:https://www.cnblogs.com/dreamer-fish/archive/2013/03/05/2944946.html

你可能感兴趣的文章
畅谈云原生(上):云原生应用应该是什么样子?
查看>>
取代ZooKeeper!高并发下的分布式一致性开源组件StateSynchronizer
查看>>
AlloyTouch实现下拉刷新
查看>>
Wiki工具使用感悟
查看>>
云因成本高昂屡被关注,上云的价值是什么?
查看>>
深入探索JVM自动资源管理
查看>>
Go现在接受来自GitHub PR的补丁
查看>>
Sonatype收购Vor Security,扩展对Nexus开源组件的支持
查看>>
Spark作为ETL工具与SequoiaDB的结合应用
查看>>
Steve Thair谈DevOps on Windows的演变与面临的挑战
查看>>
过去一年,被我们“高估”的技术清单
查看>>
传承or创新 ?解密分布式数据库自研修炼之路
查看>>
TOP 13大最热开源微服务Java框架
查看>>
想知道垃圾回收暂停的过程中发生了什么吗?查查垃圾回收日志就知道了!
查看>>
案例学习:Jigsaw模块化迁移
查看>>
ASP.NET 2.2 Preview 1首次支持Java SignalR客户端
查看>>
Netty 源码分析之 零 磨刀不误砍柴工 源码分析环境搭建
查看>>
[deviceone开发]-动画示例源码
查看>>
温故js系列(13.1)-有意思的30题_题目
查看>>
实现iOS图片等资源文件的热更新化(一): 从Images.xcassets导出合适的图片
查看>>