Powershell ConvertTo SecureString密钥在指定状态下无效

Powershell ConvertTo SecureString密钥在指定状态下无效,powershell,password-protection,powershell-4.0,securestring,Powershell,Password Protection,Powershell 4.0,Securestring,当我以特定用户的身份运行脚本时,而不是以我自己的用户帐户运行脚本时,我遇到了一个错误。这是在Windows 2012R2上实现的。Powershell模块已安装并已使用一段时间,但使用其他帐户会阻止其运行。因为我已经能够运行它,我觉得我可以排除脚本中任何丢失的文件或错误的命令。脚本的其余部分依赖于此。我还使用将通过自动化运行命令的服务帐户运行ConvertToSecureString选项,但它仍然不起作用 这是我用来转换密码的安全密码脚本 $password = "password" $secu

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

这是我用来转换密码的安全密码脚本

$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或服务器上设置/更改允许服务帐户运行此脚本的内容?提前谢谢

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


正如您自己发现的;安全字符串、凭据等。。默认情况下,使用用户特定的密钥进行加密,因此它们不能在不同的用户帐户之间共享(或:泄漏)。是的,使用系统帐户可以实现这一点,因此比用户运行服务更好。我们有一个适当的流程,可以在以这种方式运行服务的每台主机上创建密钥