Во-первых, вы должны использовать Get-Credential
вместо этого - это проще и выполняет ту же работу:
$credential = Get-Credential -Message "Please Enter Your domain username, eg. user1@contoso.com"
Оба метода создают объект PsCredential
, ссылка на которыйхранится в $credential
.Пароль хранится в памяти как SecureString
, чтобы обеспечить его безопасность, и не записывается на диск, в реестр и т. Д., Если только вы не сделаете это иначе:
PS C:\> $credential
UserName Password
-------- --------
domain\user System.Security.SecureString
Итак,это безопасно от случайных попыток читать.Однако это не совсем безопасно:
PS C:\> $credential.GetNetworkCredential() | Format-List *
UserName : user
Password : Password123
SecurePassword : System.Security.SecureString
Domain : domain