Я бачив один приклад, який використовує Import / Export-CLIXML.
Це мої улюблені команди для проблеми, яку ви намагаєтеся вирішити. І найпростіший спосіб їх використання.
$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
Тож якщо файл не існує локально, він запропонує ввести облікові дані та зберегти їх. Це займе [pscredential]
об'єкт без проблем і приховає облікові дані як захищену рядок.
Нарешті, просто використовуйте дані, як ви зазвичай робите.
Restart-Computer -ComputerName ... -Credentail $cred
Примітка про безпеку :
Безпечно зберігайте облікові дані на диску
Читаючи Рішення, ви можете спочатку насторожено зберігати пароль на диску. Незважаючи на те, що природно (і доцільно) бути обережними щодо засмічення жорсткого диска конфіденційною інформацією, командлет Export-CliXml шифрує облікові дані за допомогою стандартного API захисту даних Windows. Це гарантує, що лише ваш обліковий запис користувача може правильно розшифрувати його вміст. Аналогічно, командлет ConvertFrom-SecureString також шифрує вказаний вами пароль.
Правка: Просто перечитайте оригінальне запитання. Вищезазначене працюватиме до тих пір, поки ви ініціалізуєте [pscredential]
на жорсткому диску. Тобто, якщо ви скинете це у свій сценарій і запустите скрипт одного разу, він створить цей файл, а потім запустити сценарій без нагляду буде просто.