EGr*_*EGr 23 powershell user-input securestring powershell-2.0
我有一个脚本,我写的是连接到SOAP服务.建立连接后,我需要使用我发送的每个命令传入用户名/传递.我遇到的问题是,当我使用read-host执行此操作时,我的密码以明文形式显示并保留在shell中:
PS C:\Users\Egr> Read-Host "Enter Pass"
Enter Pass: MyPassword
MyPassword
Run Code Online (Sandbox Code Playgroud)
如果我使用-AsSecureString隐藏它,则该值不能再传递给服务,因为它现在是System.Security.SecureString对象:
PS C:\Users\gross> Read-Host "Enter Pass" -AsSecureString
Enter Pass: **********
System.Security.SecureString
Run Code Online (Sandbox Code Playgroud)
当我通过它时,它不起作用.我不关心以明文形式传递给服务的密码,我只是不希望它们在输入密码后粘在用户的shell上.是否可以隐藏Read-Host输入,但仍然将密码存储为明文?如果没有,有没有办法可以将System.Security.SecureString对象作为明文传递?
谢谢
Mus*_*idi 39
$ Password是一个Securestring,这将返回纯文本密码.
[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password))
Run Code Online (Sandbox Code Playgroud)
在 PowerShell 版本 6.x+ 中有一种方法可以做到这一点:
$password = Read-Host -MaskInput "Enter password"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27234 次 |
最近记录: |