0

У меня в настоящее время проблема. Я пытаюсь обновить переменную системного пути через powershell, используя учебник, найденный в этой ссылке (http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/23/use-powershell-to-modify-your-environmental-path.aspx), но к сожалению, он иногда ничего не может сделать из-за того, что значение уже находится на пути текущего пользователя. Есть ли способ игнорировать путь текущего пользователя и только установить системный?Как установить переменную пути среды, игнорируя переменную пути текущего пользователя

$AddedFolder = 'C:\Directory' 

$OldPath=(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).Path 

IF ($ENV:PATH | Select-String -SimpleMatch $AddedFolder) 
{ 
    Return ‘Folder already within $ENV:PATH' 
} 

$NewPath=$OldPath.Trim(";")+’;’+$AddedFolder 

Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH –Value $NewPath 

ответ

0

Проверить $OldPath вместо $env:Path то. Я также рекомендовал бы разделить значение в точках с запятой и проверить, содержится ли в этом массиве $AddedFolder, иначе вы можете получить ложные срабатывания, если в PATH уже указана вложенная папка.

if ($OldPath.Split(';') -contains $AddedFolder) { 
    Return 'Folder already within $ENV:PATH' 
} 
Смежные вопросы