PowerShell: проблема с ConvertTo-SecureString и ConvertFrom-SecureString ВНУТРИ сеанса PSSession - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь использовать ConvertTo- и ConvertFrom-SecureString в 2 сценариях Powershell, но у меня возникла проблема при создании зашифрованных паролей с динамическим профилем c, а затем при чтении / расшифровке их с помощью ТОГО ЖЕ профиля на ЖЕ машине .

Мой сценарий просит интерактивного пользователя (IU) ввести учетные данные для пользователя задачи (TU). Логика c предназначена для создания сеанса PSSession для TU внутри сеанса powershell IU, для генерации защищенной строки из простого текста (или узла чтения) и преобразования ее в обычную строку для экспорта в файл. .

$scriptUser = Read-Host "Entrez le nom de l'utilisateur qui va chiffrer/utiliser le fichier de mot de passe (domain\user)"
$scriptCredential = Get-Credential -Message "Veuillez entrer le mot de passe de l'utilisateur $scriptUser" -User $scriptUser

$Crypt = New-PSSession -Credential $scriptCredential -ComputerName localhost
if ($Crypt)
{
    Enter-PSSession $Crypt
    $Texte = "JULIEN"
    ConvertTo-SecureString $Texte -AsPlainText -Force | ConvertFrom-SecureString | Set-Content -Path C:\PathToFile\testcrypt_adm_task.txt
    Exit-PSSession
}

Но когда я пытаюсь прочитать содержимое файла, используя ConvertFrom-SecureString с TU (интерактивный планировщик или планировщик задач): ни за что!

> PS C:\PathToFile> Get-Content .\testcrypt_adm_task.txt |
> convertto-securestring convertto-securestring : Key not valid for use
> in specified state. At line:1 char:40
> + Get-Content .\testcrypt_adm_task.txt | convertto-securestring
> +                                        ~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidArgument: (:) [ConvertTo-SecureString], CryptographicException
>     + FullyQualifiedErrorId : ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell.Commands.Conv    ertToSecureStringCommand

Если я это сделаю точно такая же команда с моим IU, без проблем, как если бы ключ, используемый для шифрования моей Securestring, был связан с моим IU, а не с моим TU.

Дело в том, что у меня возникла проблема с пониманием того, что на самом деле загружается с помощью PSSession, поскольку безопасная строка доступна для чтения моим IU, а не моим TU, даже если операция шифрования была выполнена в PSSession с кредитами TU ...

Не означает Enter-PSSession действительно войти в сеанс, со всей окружающей средой с ним? Что-то мне не хватает в среде, загруженной с помощью Enter-PSSession?

Спасибо за помощь

1 Ответ

0 голосов
/ 25 марта 2020

Import-cli xml - единственный способ сохранить объект PowerShell на диск. Export-cli xml позволит вам импортировать файл в объект PowerShell.

Попробуйте изменить "| Set-Content -Path C: \ PathToFile \ testcrypt_adm_task.txt" на "| Export-Cli xml -Path C: \ PathToFile \ testcrypt_adm_task.txt "

Когда вы готовы прочитать его, используйте $ mysavedpassword = import-cli xml c: \ PathToFile \ testcrypt_adm_task.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...