如何设置环境路径变量忽略当前用户的路径变量
问题描述:
我目前有一个问题,我正在尝试通过使用此链接中找到的教程(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'
}