我们有一个脚本用于存储文本文件的密码,然后邮件脚本从密码文本文件中调用/重新使用此密码来运行主脚本。 更改密码后,我收到了以下错误。
Script used to generate secure password:
"Password" | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "D:\Scripts\Password.txt"
我们现在得到错误:
At C:\Scripts\Lync_HealthCheck_Prod.ps1:1199 char:82
+ $PasswrdS = Get-Content C:\Windows\System32\SecStrng.sec | convertto-securest
ring <<<<
+ CategoryInfo : InvalidArgument: (:) [ConvertTo-SecureString], C
ryptographicException
+ FullyQualifiedErrorId : ImportSecureString_InvalidArgument_Cryptographic
Error,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
New-Object : Exception calling ".ctor" with "2" argument(s): "Cannot process ar
gument because the value of argument "password" is null. Change the value of ar
gument "password" to a non-null value."
At C:\Scripts\Lync_HealthCheck_Prod.ps1:1218 char:27
+ $Creds1 = New-Object <<<< System.Management.Automation.PSCredential -A
rgumentList $CheckUser1, $PasswrdS
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvoca
tionException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.Power
Shell.Commands.NewObjectCommand
如果你能提供帮助,会很棒。
答案 0 :(得分:2)
错误消息声称您正在处理null
值:
&#34;无法处理参数因为参数的值&#34;密码&#34;一片空白。
因此,请仔细检查您是否真正从密码文件中读取了好的内容。 C:\Windows\System32
中的位置非常暗示进程正在从错误的位置查找它。
$PasswrdS = Get-Content C:\Windows\System32\SecStrng.sec
答案 1 :(得分:0)
完全相同的问题,由于sec文件上的NTFS权限不匹配。获取内容可以,但不能调用Convertto-SecureString。 创建密码文件的用户不是执行程序的用户。 我完全控制了这两个用户的文件。现在可以了。
更准确地说:我连接了运行,删除和重新创建包含凭证的安全文件所需的帐户。此文件仅对此帐户有用