2

我以为我曾经有过这个工作,但最近我的命令停止了工作。我在国内外的研究并没有发现我还没有尝试过的任何东西。也许还有其他一些我正在SETX查看的变量?

我的命令:

setx /s servername PATH "%Path%";"c:\program files (x86)\java\jre7\bin";"c:\program files (x86)\java\jre7\bin\client" /m

我已经对几个 Win2k8 服务器尝试了相同的命令,但无济于事。这已经奏效,但现在正在产生上述错误。我通常在一个批处理文件中针对几个服务器的列表运行它以推出 Java。(除非我们在远程安装时手动创建条目,否则不会设置 java 的路径。)

path我正在尝试更新的服务器上的现有内容是:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%systemroot%\System32\WindowsPowerShell\v1.0\;C:\BMC\Patrol3\bin;C:\BMC\common\globalc\bin\Windows-x86;C:\BMC\common\globalc\bin\Windows-x86-64;C:\BMC\Patrol3\BEST1\9.5.00\bgs\bin

我确实清理了几个重复的路径条目。除此之外,我没有发现任何不寻常的地方。


编辑: 调整命令以删除一些引号确实允许它运行,但它会导入本地系统的路径替换远程系统路径并附加所需的路径条目。

修改后的命令:

setx /s servername PATH "%Path%;c:\program files (x86)\java\jre7\bin;c:\program files (x86)\java\jre7\bin\client" /m

为了解决这个新问题,我尝试使用 psexec 运行该命令。这样做让我回到了最初的问题,“默认选项不允许超过 '2' 次”。根据我在使用 psexec 时修改引号的方式,我可以获得“To many Arguments”或命令成功,路径被截断,最终再次成为远程服务器上应用的本地路径。

我最有希望的尝试:

psexec \\servername -u domain\user -p p@ssw0rd "c:\windows\system32\setx" "Path "%Path%;c:\program files (x86)\java\jre7\bin;c:\program files (x86)\java\jre7\bin\client" /M"

在 psexec 上使用“-s”选项会产生相同的错误,只是细节较少。

4

1 回答 1

2

我能够通过创建要远程执行的批处理文件来更新远程系统上的路径值。

“setJava7path.cmd”的内容

setx Path "%Path%";"%ProgramFiles(x86)%\java\jre7\bin";"%ProgramFiles(x86)%\java\jre7\bin\client" /m

为了执行,我使用了 psexec,它将批处理文件复制到远程系统并执行了命令。

psexec \\systemname -c setJava7path.cmd

它在我的整体部署脚本中添加/更改了一行,但这是可行的。

于 2015-11-02T18:00:44.413 回答