我们正在使用Powershell在目标环境(例如VM)中执行一些部署任务。 但是,该脚本似乎无权访问系统环境变量以及该脚本运行的其他程序。 到目前为止,它只能访问管道中定义的变量。
此外,在由该脚本运行的.NET程序中,我们具有:
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", EnvironmentVariableTarget.Machine);
,但是它仍然无法访问所需的环境变量。
有没有一种方法可以允许管道脚本访问系统变量? 还是必须定义一个阶段作用域的管道变量并使它与目标机器的系统变量一致?
谢谢。
答案 0 :(得分:0)
如果要获取目标计算机的系统环境变量,则只需要在目标计算机上安装了自托管代理的情况下运行管道。然后在powershell脚本中使用$ env: VARIABLE_NAME
来获取目标计算机的系统环境变量。
Azure Devops中通过powershell脚本获得的计算机的系统环境变量由运行管道的代理确定。使用计算机在其上运行管道的代理可以访问该计算机的系统环境变量。
此外,您可以尝试使用Mar Tin在注释中提到的方法来将系统变量定义为管道变量。