无法刷新Start-Job块中的$env:变量



我试图有一个控制器内的母亲脚本。它必须检查$Env:var的状态,并根据值做一些事情。问题是我怎么也刷新不了。它在执行开始时捕获值,然后$Env:var保持静态,尽管在Start-Job块之外的$Env:var发生了什么。

Start-Job -Name Controller -scriptblock {     

while($true){ 

if ($Env:var -eq 100){

# lot of different stuff
}

Start-Sleep -Seconds 5
}
} 

不幸的是,我的环境受限于PS 3.0。

事实上,$Env环境变量是在PowerShell进程启动后设置的,当值改变时它们不会被刷新。

如果环境变量在PowerShell之外发生了变化,您必须直接从注册表中读取它们以获得当前值。基本位置为:

系统环境变量

Get-Item "HKLM:SYSTEMCurrentControlSetControlSession ManagerEnvironment"

用户环境变量

Get-Item HKCU:Environment

最新更新