我目前遇到问题,我正在尝试使用此链接(http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/23/use-powershell-to-modify-your-environmental-path.aspx)中提供的教程通过powershell更新系统路径变量,但不幸的是,它和&# #39; ll有时不会做任何事情,因为该值已经在当前用户的路径中。有没有办法忽略当前用户的路径,只设置一个系统?
$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 :(得分:0)
然后检查$OldPath
而不是$env:Path
。我还建议以分号分割值并检查该数组中是否包含$AddedFolder
,否则如果PATH中已经列出了子文件夹,则可能会出现误报。
if ($OldPath.Split(';') -contains $AddedFolder) {
Return 'Folder already within $ENV:PATH'
}