Можем ли мы зашифровать переменную среды, состоящую из пароля, через Powershell - PullRequest
0 голосов
/ 09 апреля 2020

Привет. Я пытаюсь создать переменную окружения через Powershell, состоящую из пароля, но я думаю, что она должна быть зашифрована. Но когда я пытаюсь с приведенным ниже кодом, это не работает. Но мне нужно это зашифровать. Можно ли его зашифровать и никто не увидит пароль.

try {
    $sourceFile1 = "C:\vault\service_acct_pass.json"
    $RowValues = Get-Content $sourceFile1  | Select -skip 1 | select-string -pattern '---' -notmatch
    $RowValues = $RowValues -replace '\s{1,}',"`t" | out-file -filepath C:\vault\output.txt
    $sourceFile = "C:\vault\output.txt"
    $RowValues = Get-Content $sourceFile
    $Line = $RowValues.split("`t")
    $columnCount = (Import-Csv $sourceFile -Delimiter "`t" | get-member -type NoteProperty).count
    $myArray = @()
    for ($i=0; $i -lt $columnCount; $i++) {
        $myArray += $Line[$i]
    }
    $columnSource = import-csv $sourceFile -Delimiter "`t"
    foreach ($element in $myArray) {
    ConvertTo-SecureString "[System.Environment]::SetEnvironmentVariable($element,$columnSource.$element,[System.EnvironmentVariableTarget]::Machine)" -AsPlainText -Force
    }
    Remove-Item $sourceFile -Recurse
    }
catch {
  "Unforeseen Errors"
  $error[0]
}

Примечание : В приведенном выше коде я читаю файл, имеющий ключ и пароль. Когда я использую только эту строку [System.Environment] :: SetEnvironmentVariable ($ element, $ columnSource. $ Element, [System.EnvironmentVariableTarget] :: Machine) вместо ConvertTo-SecureString "[ System.Environment] :: SetEnvironmentVariable ($ element, $ columnSource. $ Element, [System.EnvironmentVariableTarget] :: Machine) "-AsPlainText -Force это прекрасно работает и сохраняет переменные, но видно всем.

...