如何解决发送安全字符串以在 powershell 模块中运行
我在 Powershell 模块中有一个函数,它应该与 Simplysql 建立数据库会话。 Simplysql 需要一个凭证对象。现在我有几个问题,将密码发送到函数中。我试过的:
-
当使用 [string]$password 参数时,我收到警告
"Parameter '$password' should use securestring,otherwise this will expose sensitive information"
。绝对有意义,所以我将参数更改为安全字符串。 -
我用
"$SecurePassword = "myPassword" | ConvertTo-securestring -AsPlainText -Force"
创建了安全字符串,再次导入模块并调用函数。现在我收到以下消息:Cannot process argument transformation on parameter 'Password'. Cannot convert the "System.Security.securestring" value of type "System.String" to type "System.Security.securestring"
。我用$myLocalSecString.GetType()
检查了 securestring,“是”它是一个安全字符串。 -
因为我没有找到任何解决方案,所以我尝试将
[PSCredential]$cred
设置为输入对象。我用[pscredential]$_credobject = New-Object System.Management.Automation.PSCredential ("myusername",$SecurePassword)
创建了对象。当我现在调用该函数时,我收到以下消息:
PowerShell credential request
Enter your credentials.
Password for user System.Management.Automation.PSCredential:
我认为我在场景 2 和 3 中以错误的方式创建了 securestring,但我没有做错什么。该脚本应该适用于 Powershell Core。
提前致谢
戴夫
解决方法
抱歉耽搁了,放假了;-)。 我现在再次尝试为您提供完整的代码示例。我不知道我改变了什么,但知道它的工作原理。 我真的很确定,我是用
创建的$_secString = ConvertTo-SecureString "test" -AsPlainText -Force
[pscredential]$_credObject = New-Object System.Management.Automation.PSCredential("mydbuser",$_secString)
最后一次。我今天用同样的命令做了它,它有效。奇怪的。偷了你的时间是我的罪过......
真的很奇怪。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。