Проблема с расшифровкой при вызове учетных данных, сохраненных в реестре с использованием powershell - PullRequest
0 голосов
/ 24 апреля 2020

Я создал файл реестра для сохранения Azure пароля.

$path = "HKCU:\SOFTWARE\PowerShellCred"
$sec = Read-Host "Enter Password for $name" -AsSecureString
$hash = $sec | ConvertFrom-SecureString
Set-ItemProperty -Path $path -Name $admin -Value $hash -Force

но при вызове пароля у меня возникают проблемы с расшифровкой пароля с помощью ConvertTo-SecureString. Я использую ту же учетную запись пользователя для создания пароля и доступа к нему (Admin)

$admin = "xxxxxx@xxxx.com"
$pass = (Get-ItemProperty -Path $path -Name $name -ErrorAction SilentlyContinue)."$name"
$secpw = ConvertTo-SecureString -String $pass -AsPlainText -Force
$c = New-Object System.Management.Automation.PSCredential ($admin, $secpw)
$Azurelogin = Connect-AzureRmAccount -Credential $c

1 Ответ

0 голосов
/ 24 апреля 2020

То, что вы сохранили в реестре, это зашифрованная строка, а не реальная PlainText.
Что-то вроде 01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7 efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd 6eb67aae41

Чтобы преобразовать это обратно в SecureString, вы не используйте переключатели -AsPlainText и -Force, как при преобразовании «нормальной» строки, например P@ssW@rd.

Попробуйте

$secpw = ConvertTo-SecureString -String $pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...