我正在尝试在远程机器上设置环境变量。
setx /s machine var value不起作用-它不产生输出,也不做任何事情。
psexec \\machine setx var value表示它成功地更改了值。然而,当我到机器上打开cmd时,它没有显示出来。它确实出现在计算机->属性->高级->环境变量中。另外,当我运行
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非常奇怪,因为它是相同的域,用户名和密码在两台机器上;它不工作-什么也没说,但我仍然看不到本地机器上的环境。
任何想法都是受欢迎的。
发布于 2017-05-19 03:30:27
使用/s参数时,请确保“远程注册表”服务正在目标计算机上运行。这会是你的问题的原因吗?在Windows 7上,如果该服务未在远程计算机上运行,我会收到“错误:无法完成指定的操作”。
https://stackoverflow.com/questions/12997513
复制相似问题