ConvertTo-SecureString 密钥在指定状态下使用无效

Jon*_*n T 2 powershell securestring password-protection powershell-4.0

当我以特定用户身份运行脚本时遇到错误,但不是以我自己的用户帐户运行脚本。这是在 Windows 2012R2 上。Powershell 模块已安装并已使用一段时间,但使用另一个帐户会阻止其运行。因为我已经能够运行它,所以我觉得我可以排除脚本中任何丢失的文件或错误的命令。脚本的其余部分取决于此。我还使用将通过自动化运行命令的服务帐户运行 Convertto-securestring 选项,但它仍然无法正常工作。

这是我运行的用于转换密码的安全密码脚本

$password = "password"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force 
$secureStringText = $secureStringPwd | ConvertFrom-SecureString 
Set-Content "E:\temp\ExportedPassword.txt" $secureStringText`
Run Code Online (Sandbox Code Playgroud)

这是尝试以用户 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
Run Code Online (Sandbox Code Playgroud)

我已通过自动化软件多次运行此脚本,但在测试时,由于此错误,我必须以我的个人帐户运行该命令,并且为了解决此问题以便我可以完成测试,我调用了该选项。我的问题是,我使用的帐户是否缺少任何特定权利?我是否必须在该帐户下安装 Powershell 扩展,或者我可以在 PS 或服务器上设置/更改某些内容以允许服务帐户运行此脚本吗?提前致谢!

Jon*_*n T 5

问题不在于服务帐户运行命令的能力,而是系统帐户正在运行命令,因此它传递的安全密码不可用。我发现此链接提供了一个脚本,该脚本安排脚本使用系统帐户运行,从而由系统创建文件,该系统将正确使用密码文件并正确传递凭据。感谢 Keith Francis 和托管代码的网站,我始终非常感谢这些提供支持渠道的社区。

https://community.spiceworks.com/scripts/show/3517-use-powershell-securestring-with-windows-system-account