Привет. Я пытаюсь создать переменную окружения через 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 это прекрасно работает и сохраняет переменные, но видно всем.