powershell保护明文密码

winrm脚本能运行了,就想着明文密码怎么也隐藏一下,网上搜了一圈,还是sparkdev的简单明了:

https://www.cnblogs.com/sparkdev/p/7258507.html

试着走一下,txt方式有效,高级的txt+key却报错“ConvertTo-SecureString : 输入数据不是完整的块”,一时也不知怎么解决,只得记下日后反刍。

$Password = 'pwd'
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
ConvertFrom-SecureString $SecurePwd | Out-File "路径\pwd.txt"
$pass=get-content "路径\pwd.txt" | convertto-securestring

报错的txt+key步骤:

$pwd="路径\pwd.txt"
$keyfile="路径\pwd.key"
$key = new-object byte[] 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($key)
$key | out-file $keyfile
$key = Get-Content $keyfile
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Username,(Get-Content $pwd | ConvertTo-SecureString -Key $key)

补充:比较了一下set(cmd窗口设置当前窗口变量),setx(cmd窗口设置新增窗口变量)两个命令在powershell界面的使用,setx永久设置新开窗口用户变量有效,而set设置不了当前窗口的变量,搜一下,用$env:变量名="变量内容"就可以实现。
而搜的教程上完整的写法:
[environment]::setenvironmentvariable("变量名","变量内容")不能改变当前窗口变量的值,可以改变新增窗口变量的值
[environment]::setenvironmentvariable("变量名","变量内容","User")不能改变新增窗口变量的值,可以改变当前窗口变量的值
多敲字符,忘了尤佳。

posted @ 2024-03-04 11:01  qiuwenzheng  阅读(72)  评论(0)    收藏  举报