如何设置环境路径变量忽略当前用户的路径变量

问题描述:

我目前有一个问题,我正在尝试通过使用此链接中找到的教程(http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/23/use-powershell-to-modify-your-environmental-path.aspx)通过PowerShell更新系统路径变量,但不幸的是,由于该值已经在当前用户的路径中,所以它有时不会做任何事情。有什么方法可以忽略当前用户的路径并只设置系统?如何设置环境路径变量忽略当前用户的路径变量

$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 

检查$OldPath代替$env:Path然后。我还建议使用分号分隔值并检查该数组中是否包含$AddedFolder,否则如果子文件夹已列在PATH中,则可能会出现误报。

if ($OldPath.Split(';') -contains $AddedFolder) { 
    Return 'Folder already within $ENV:PATH' 
}