У меня есть два скрипта Powershell, которые я создаю для образа Windows 7. Перед образом я запускаю PRE-IMAGE.ps1, и в нем есть такая строка:

$JoinDomainPassword = Read-Host -Prompt "Please enter the password for $joinDomainUser" -AsSecureString
$strPass = $joinDomainPassword | ConvertFrom-SecureString

Затем я сохраняю защищенную строку $ strPass в реестре и запускаю sysprep.

После перезагрузки с помощью sysprep файл POST-IMAGE.ps1 извлекает из реестра $ strPass и имеет следующую строку:

$strPass = $strPass | ConvertTo-SecureString
$credentials = New-Object System.Management.Automation.PSCredential ($JoinDomainUser, $strPass)

Тем не менее, эти строки в POST-IMAGE.ps1 получают ошибку "Key not valid", которую вы увидите, когда запускаете команды convertto-securestring и convertfrom-securestring для разных пользователей Windows. (похоже на этот вопрос) - но подвох здесь в том, что я использую одного и того же пользователя для преобразования в и из безопасных строк. Я предполагаю, что это как-то связано с sysprep - но я не могу обернуться вокруг этого.

Я прошу прощения, если об этом уже спрашивали, я нашел несколько вопросов, которые касаются некоторых частей этого, но не описывают мою ТОЧНУЮ проблему.

1 ответ1

0

В качестве альтернативы вы можете сохранить учетные данные в виде строки Base64. Он не зашифрован, но он держит детей как уровни интеллекта.

Преобразовать строку в строку Base64: [Система.Преобразовать]::ToBase64String([System.Текст.Кодирование]::UTF8.GetBytes(" привет "))

Преобразовать строку Base64 обратно в строку [Система.Текст.Кодирование]::UTF8.GetString([System.Convert]::FromBase64String(" aGVsbG8 = "))

Тайцы работали для моих нужд, но у вас могут быть другие проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .