“错误:语法无效。默认选项不允许超过'2'时间。”使用SETX

时间:2015-10-28 22:01:20

标签: windows batch-file path psexec setx

我以为我曾经有过这个工作,但最近我的命令退出了工作。我在国内外的研究并未发现我尚未尝试过的任何事情。也许还有一些我遗漏的变量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”选项会产生相同的错误,只会减少细节。

1 个答案:

答案 0 :(得分:1)

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

“setJava7path.cmd”的内容

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

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

psexec \\systemname -c setJava7path.cmd

它添加/更改了一行到我的整体部署脚本,但这是宜居的。