无法刷新 Start-Job 块内的 $env:variable

Can not refresh $env:variable inside of Start-Job block

我正在尝试在母脚本中添加一个控制器。它必须检查 $Env:var 的状态并根据值做一些事情。问题是我无论如何都无法刷新它。它在执行开始时捕获值,然后 $Env:var 保持静态,尽管 $Env:var 在 Start-Job 块之外发生了什么。

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:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

用户环境变量

Get-Item HKCU:\Environment