Добрый день всем,
Я написал функцию PowerShell, чтобы помочь мне обновить переменную системной среды на нескольких компьютерах с Windows 7 и 10 Enterprise. Однако я заметил, что моя "[System.Environment] :: SetEnvironmentVariable ()" команда удаляет существующую переменную и не меняет ее значение - как я и ожидаю.
Что я делаю не так?
Вот фрагмент соответствующего кода:
$ComputerName = "SERVER1"
$MyEnvVar = "C:\Some_Path\"
ForEach ($Computer in $ComputerName){
$Online = Test-Connection -ComputerName $Computer -Count 2 -Quiet
If ($Online -eq $True){
$OldValue = Invoke-Command $Computer -ScriptBlock {[System.Environment]::GetEnvironmentVariable("MyVariableName","Machine")}
Write-Host "Old Value is: $OldValue"
Invoke-Command $Computer -ScriptBlock {[System.Environment]::SetEnvironmentVariable("MyVariable","$MyEnvVar","Machine")}
$NewValue = Invoke-Command $Computer -ScriptBlock {[System.Environment]::GetEnvironmentVariable("MyVariableName","Machine")}
Write-Host "New Value is: $NewValue"
}
}