在PowerShell脚本中,我必须在高架窗口中调用批处理文件。 所以我做了
Start-Process my.bat -Verb runas
现在,my.bat
期望在原始窗口中设置一些ENV变量。
但是,由于提升的窗口是以admin身份执行的,因此我设置为常规用户的那些变量似乎不会在管理窗口中设置。
有没有办法在调用my.bat
之前在管理窗口中设置ENV vars?
答案 0 :(得分:3)
你想要的是不可能的。出于安全原因,提升的流程不会继承父母的环境。您可以做的是创建一个运行提升的包装脚本,并让该脚本在运行my.bat
之前从参数设置环境变量。
@echo off
set "VARIABLE1=%1"
set "VARIABLE2=%2"
call "C:\path\to\my.bat"
像这样运行:
Start-Process .\wrapper.ps1 -ArgumentList 'foo', 'bar' -Verb runas