Пытался прочитать недавно установленную environment variable из PowerShell в SQL Agent Job, но он упорно не видел ее. Наткнулся на следующую очевидную вещь, которую, видимо, знали все кроме меня:
т.е. эти переменные кэшируются процессом во время старта и дальше он не видит их изменений (кроме случая, когда изменил их сам). Официального workaround не существует (кроме как перезапустить процесс), но вот вам неофициальный от меня: можно прочитать эти значения в реестре (например, при помощи следующей строчки в Powershell script).
$MSU=(New-Object -ComObject WScript.Shell).RegRead("HKLM\SYSTEM\ControlSet001\Control\....")