Eu vi um exemplo que usa Import / Export-CLIXML.
Esses são os meus comandos favoritos para o problema que você está tentando resolver. E a maneira mais simples de usá-los é.
$passwordPath = './password.txt'
if (-not (test-path $passwordPath)) {
$cred = Get-Credential -Username domain\username -message 'Please login.'
Export-Cli -InputObject $cred -Path $passwordPath
}
$cred = Import-CliXML -path $passwordPath
Portanto, se o arquivo não existir localmente, ele solicitará as credenciais e as armazenará. Isso exigirá um [pscredential]
objeto sem problemas e ocultará as credenciais como uma sequência segura.
Finalmente, basta usar a credencial como você normalmente faz.
Restart-Computer -ComputerName ... -Credentail $cred
Nota sobre o Securty :
Armazene credenciais com segurança no disco
Ao ler a solução, você pode, inicialmente, desconfiar de armazenar uma senha no disco. Embora seja natural (e prudente) ser cauteloso ao deixar seu disco rígido com informações confidenciais, o cmdlet Export-CliXml criptografa objetos de credenciais usando a API de proteção de dados padrão do Windows. Isso garante que apenas sua conta de usuário possa descriptografar adequadamente seu conteúdo. Da mesma forma, o cmdlet ConvertFrom-SecureString também criptografa a senha que você fornece.
Editar: basta reler a pergunta original. O procedimento acima funcionará desde que você inicialize [pscredential]
o disco rígido. Ou seja, se você soltar isso em seu script e executar o script, uma vez que ele criará esse arquivo e, em seguida, executar o script sem supervisão será simples.