我在以特定用户身份运行脚本时收到错误,但不是我自己的用户帐户。这是在Windows 2012R2上。 Powershell模块已安装并且已经使用了一段时间,但使用其他帐户会阻止其运行。因为我能够运行它,我觉得我可以排除脚本中任何丢失的文件或错误的命令。脚本的其余部分依赖于此。我还使用将通过自动化运行命令的服务帐户运行convertto-securestring选项,但它仍然无效。
这是我为转换密码而运行的安全密码脚本
$password = "password"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$secureStringText = $secureStringPwd | ConvertFrom-SecureString
Set-Content "E:\temp\ExportedPassword.txt" $secureStringText`
这是尝试以用户B
运行后的错误消息line 4 $pwdTxt = Get-Content "E:\temp\ExportedPassword.txt"
line 5 $securePwd = $pwdTxt | ConvertTo-SecureString
ConvertTo-SecureString : Key not valid for use in specified state.
At E:\temp\get_user_cliffsv4.ps1:5 char:24
+ $securePwd = $pwdTxt | ConvertTo-SecureString
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [ConvertTo-SecureString],
CryptographicException
+ FullyQualifiedErrorId :
ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell.
Commands.ConvertToSecureStringCommand
我已经通过自动化软件多次运行此脚本,但是在测试时我必须将该命令作为我的个人帐户运行,因为这个错误并且为了解决这个问题我可以完成测试,我调用了该选项。我的问题是,我使用的帐户是否缺少任何特定权利?我是否必须在该帐户下安装Powershell扩展程序,还是可以在PS或服务器上设置/更改允许服务帐户运行此脚本的内容?提前谢谢!
答案 0 :(得分:2)
问题不在于服务帐户运行命令的能力,而是系统帐户正在运行命令,因此传递的安全密码不可用。我发现此链接提供了一个脚本,该脚本使用系统帐户安排脚本运行,从而按系统创建文件,该文件将正确使用密码文件并正确传递凭据。感谢Keith Francis和托管代码的网站,我非常感谢这些提供支持的社区。 p>