Guardar credenciales para su reutilización por powershell y error ConvertTo-SecureString: Clave no válida para usar en el estado especificado

Estaba haciendo algo como se describe en esta publicación para guardar las credenciales en un archivo seguro para que nuestro proceso automatizado pueda usarlo para ejecutar scripts de PS remotos a través del comando Invoke:http: //blogs.technet.,com/b/robcost/archive/2008/05/01/powershell-tip-storing-and-using-password-credentials.asp

Esto funciona muy bien cuando ejecuto esto en mi cuenta: la contraseña se lee del archivo cifrado, se pasa al comando Invoke y todo está bien.

Hoy, cuando mi script estaba listo para su horario de máxima audiencia, intenté ejecutarlo en una cuenta de Windows que será utilizada por un proceso automatizado y obtuve este error a continuación mientras mi script intentaba leer la contraseña segura de un archivo:

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

Pidió a mi compañero de trabajo que se ejecutara bajo su cuenta y obtuvo el mismo error.

Este es el código que estoy usando para guardar las credenciales:

$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 ***"

Este es el código en el script para ejecutar por proceso automatizado para leerlos para usar en 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

Error ocurre en la línea $ contraseña = get-content $ PathToFolderWithCredentials \ pass.txt | convertto-securestring

¿Algunas ideas

Respuestas a la pregunta(4)

Su respuesta a la pregunta