Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows上,使用Chef确保删除用户环境变量,但不删除系统变量_Windows_Environment Variables_Chef Infra - Fatal编程技术网

在Windows上,使用Chef确保删除用户环境变量,但不删除系统变量

在Windows上,使用Chef确保删除用户环境变量,但不删除系统变量,windows,environment-variables,chef-infra,Windows,Environment Variables,Chef Infra,我正在编写一个chef脚本来安装nvm for windows。我刚刚遇到了一个问题,系统最终为NVM\u HOME 环境“NVM_HOME”do 行动:删除 结束 上述情况可能会消除这两种情况 如何修改chef脚本以确保保留系统变量,但删除用户变量(如果存在)?最后这样做了 [ “NVM_HOME”, “NVM_符号链接” ].每个do |键| 执行“确保nvm没有添加#{key}用户变量”do 命令“REG delete HKCU\\ENVICENT/F/V{key}” 仅当{regi

我正在编写一个chef脚本来安装nvm for windows。我刚刚遇到了一个问题,系统最终为
NVM\u HOME


环境“NVM_HOME”do
行动:删除
结束

上述情况可能会消除这两种情况

如何修改chef脚本以确保保留系统变量,但删除用户变量(如果存在)?

最后这样做了


[
“NVM_HOME”,
“NVM_符号链接”
].每个do |键|
执行“确保nvm没有添加#{key}用户变量”do
命令“REG delete HKCU\\ENVICENT/F/V{key}”
仅当{registry\u key\u存在时?“HKCU\\Environment\\\\{key}”
结束
结束


可能不是最好的方法,但它运行:)

如果用户环境变量是运行chef的用户而不是其他用户,则可以使用资源来确保删除值(未测试的示例):


如果您希望更改另一个用户变量,可以查看

我认为您必须在powershell中创建一个小脚本,请参阅以获取起点。是,假设我可以进行类似于
REG delete HKCU\Environment/F/V FOOBAR
的工作,但不知道它是否内置,我误解了主厨文档我假设玩用户SSID和
registry\u key
资源这是可行的,我需要针对KHU/。。。但这应该是可行的。是的,这是我唯一需要它的情况。然后
注册表项将避免需要警卫。无论如何,将其添加为答案:)
registry_key "HKCU\\Environment" do
  values [{:name => 'NVM_HOME'},{:name => 'NVM_SYMLINK'}]
  action :delete
end