Widziałem jeden przykład, który używa Import / Export-CLIXML.
To są moje ulubione polecenia dotyczące problemu, który próbujesz rozwiązać. Najprostszym sposobem ich użycia jest.
$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
Jeśli więc plik nie istnieje lokalnie, zapyta o poświadczenia i zapisze je. To zajmie[pscredential]
bezproblemowe obiektu i ukrycie poświadczeń jako bezpieczny ciąg.
Na koniec użyj poświadczeń, tak jak zwykle.
Restart-Computer -ComputerName ... -Credentail $cred
Uwaga dotycząca bezpieczeństwa :
Bezpiecznie przechowuj poświadczenia na dysku
Czytając Rozwiązanie, możesz początkowo obawiać się przechowywania hasła na dysku. Chociaż zachowanie ostrożności przed zaśmiecaniem dysku twardego poufnymi informacjami jest naturalne (i rozważne), polecenie cmdlet Export-CliXml szyfruje obiekty poświadczeń przy użyciu standardowego interfejsu API ochrony danych systemu Windows. Dzięki temu tylko Twoje konto użytkownika może poprawnie odszyfrować jego zawartość. Podobnie polecenie cmdlet ConvertFrom-SecureString również szyfruje podane hasło.
Edycja: po prostu ponownie przeczytaj oryginalne pytanie. Powyższe będzie działać tak długo, jak zainicjujesz [pscredential]
na dysku twardym. To znaczy, jeśli upuścisz to w swoim skrypcie i uruchomisz go, gdy utworzy on ten plik, a następnie uruchomienie skryptu bez nadzoru będzie proste.