Приведенный ниже код PowerShell успешно изменяет переменную PATH
, когда она вызывается из экземпляра PowerShell, который запускается от имени администратора . И в командной строке Windows CMD также работает , поскольку администратор также может использовать обновленную PATH
. Но недавно обновленный PATH
НЕ ДОСТУПЕН для экземпляров PowerShell с правами обычного пользователя или командной строки Windows CMD.
Какие конкретные c изменения необходимо внести в приведенный ниже код PowerShell, чтобы обновленное значение $newPath
переменной PATH
было доступно для всех командных строк и экземпляров PowerShell?
$newpath = "$oldpath;$pathItem"
Write-Host "newpath is: $newpath"
#Set the new version as the replacement PATH permanently, but not within this session
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath
#Set the new version as the replacement PATH within this session
$env:path = $newPath
Отдельно, когда я пытаюсь запустить приведенный выше код как пользователь без прав администратора в PowerShell, следующая строка кода выдает ошибку разрешений и завершается ошибкой:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath