在远程Windows机器上更改环境变量

问题描述 投票:0回答:1

我正在尝试在远程计算机上设置环境变量。

setx /s machine var value

不起作用 - 它不产生任何输出,也不做任何事情。

psexec \\machine setx var value

说它成功地改变了价值。但是,当我去机器并打开cmd时,它没有显示它。它确实出现在computer-> properties-> advanced-> environment变量中。还有,当我跑

psexec \\machine cmd /c set

它写得正确。

我写了一个名为RefreshEnvironment.exe的程序,它基本上执行以下操作:

    SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
    (LPARAM) L"Environment", SMTO_ABORTIFHUNG,
    5000, &dwReturnValue);

如果我在本地机器上调用它,它可以解决问题 - 我在它之后打开cmd并获得正确的环境。但是,它不能远程工作。调用

psexec \\machine RefreshEnvironment.exe

返回“访问被拒绝”。我只能在显式写入用户和密码的情况下运行它:

psexec \\machine -user domain\username -p password RefreshEnvironment.exe

非常奇怪,因为它在两台机器上都是相同的域名,用户名和密码;并且它不起作用 - 没有说什么,但我仍然无法在本地机器上看到环境。

任何想法都会受到欢迎。

windows environment-variables psexec setx
1个回答
0
投票

使用/ s参数时,请确保目标计算机上正在运行“远程注册表”服务。这可能是你问题的原因吗?在Windows 7上,如果该服务未在远程计算机上运行,​​则会收到“错误:指定的操作无法完成”。

© www.soinside.com 2019 - 2024. All rights reserved.