azure - Powershell - 设置环境变量而无需关闭应用程序

标签 azure powershell environment-variables

我认为这是不可能的,但是在开发软件时获取最新的环境变量是一个很大的痛苦。

举个例子,我有一个 psake 脚本,它更新我的应用程序所需的环境变量:

[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, 'Process')
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, [System.EnvironmentVariableTarget]::Machine)

此环境变量可能每天/每周发生变化,因为它基于启动的 Azure 基础设施。

在 Visual Studio 中,我的应用程序依赖此环境变量进行配置,并且在我退出 VS 并再次重新打开它之前,它不会成功运行(因此“机器”设置的环境变量现在为最新)。

是否可以采取任何措施来防止每次 Windows 上的环境变量发生更改时我们都必须关闭并重新打开所有内容?

最佳答案

可以从注册表中读取当前的环境变量,

Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name myConfig

作为解决方法,您可以从注册表中读取值并再次设置环境变量以更新 session ,而无需重新打开。

$myConfig = "myConfig"
$reg = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name myConfig
$myValue = $reg.myConfig
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, 'Process')
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, [System.EnvironmentVariableTarget]::Machine)

关于azure - Powershell - 设置环境变量而无需关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64136200/

相关文章:

azure - 将 Azure 数据工厂保存到 Git 时输入提交消息

azure - 将 Azure 标记策略应用于订阅级别

multithreading - Powershell 可以并行运行命令吗?

java - 使用java swing命令按钮调用powershell脚本

powershell - 处理来自PowerShell脚本的DISM错误

javascript - 如何使用WMI和JavaScript修改环境变量?

azure - 我可以在没有 Azure 云服务的情况下使用 Azure ML 吗?

azure - 该项目的目标是 '.NET Framework 4.5',Windows Azure 虚拟机不支持该目标 (OSFamily = '4' )

r - 在 R foreach() 下并行运行时无法识别动态库依赖项

intellij-idea - IntelliJ : executing a program with environment variables stored in a separated file