Сохранение учетных данных для повторного использования в powershell и ошибка ConvertTo-SecureString : Key not valid for use in specified state

Я делал нечто похожее на описанное в этом посте, чтобы сохранить учетные данные в защищенный файл, чтобы наш автоматизированный процесс мог использовать это для выполнения удаленных PS скриптов через Invoke-command: http://blogs.technet.com/b/robcost/archive/2008/05/01/powershell-tip-storing-and-using-password-credentials.aspx

Это отлично работает, когда я запускаю его под своей учетной записью - пароль считывается из зашифрованного файла, передается Invoke-command и все в порядке.

Сегодня, когда мой скрипт был готов в прайм-тайм, я попытался запустить его под учетной записью windows, которая будет использоваться автоматизированным процессом, и получил эту ошибку ниже, когда мой скрипт пытался прочитать защищенный пароль из файла:

ConvertTo-SecureString : Key not valid for use in specified state.
At \\remoted\script.ps1:210 char:87
+ $password = get-content $PathToFolderWithCredentials\pass.txt | convertto-sec
urestring <<<<
    + CategoryInfo          : InvalidArgument: (:) [ConvertTo-SecureString], C
   ryptographicException
    + FullyQualifiedErrorId : ImportSecureString_InvalidArgument_Cryptographic
   Error,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand

Попросил моего напарника запустить его под своей учетной записью, и он получил ту же ошибку.

Это код, который я использую для сохранения учетных данных:

$PathToFolderWithCredentials = "\\path\removed"

write-host "Enter login as domain\login:"
read-host | out-file $PathToFolderWithCredentials\login.txt

write-host "Enter password:"
read-host -assecurestring | convertfrom-securestring | out-file $PathToFolderWithCredentials\pass.txt

write-host "*** Credentials have been saved to $pathtofolder ***"

Это код в сценарии для запуска автоматизированного процесса, чтобы прочитать их для использования в Invoke-command:

$login= get-content $PathToFolderWithCredentials\login.txt
$password = get-content $PathToFolderWithCredentials\pass.txt | convertto-securestring
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $login,$password

Ошибка происходит в строке $password = получить содержимое $PathToFolderWithCredentials\pass. txt | convertto-securestring

Есть идеи?

27
задан Lars Truijens 18 August 2011 в 18:53
поделиться