2015-10-28 95 views
1

我以为我曾经在同一时间工作,但最近我的命令退出了工作。我在国内外的研究没有发现任何我没有尝试过的东西。也许有一些其他变量我缺少SETX正在看?”错误:语法无效,默认选项不允许超过'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'时间(s)”。根据我在使用psexec时如何修改引号,我可以得到“To many Arguments”或命令成功,路径被截断,最终成为在远程服务器上再次应用的本地路径。

最有前途的我尝试:

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

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

+2

引号对我来说很奇怪,尝试删除它们,并在'“”''内包含*整个*值...... – aschipfl

+0

当我在脚本中运行时,这些引用工作正常。更改引号可以消除错误。现在,本地路径正在应用到远程服务器,并带有我想追加的路径。 – gritts

+0

@gritts我建议看看[为什么其他文件夹路径也通过SetX添加到系统PATH,而不仅仅是指定的文件夹路径?](http:// stackoverflow。com/a/25919222/3074564)和[在Win7上仅在批处理文件中设置路径环境变量](http://stackoverflow.com/a/31889785/3074564)。在远程计算机上正确扩展系统__PATH__当然比在本地计算机上更加困难。 – Mofi

回答

0

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

“setJava7path.cmd”

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

的内容要执行我利用该复制的批处理文件到远程系统,并执行该命令PSEXEC。

psexec \\systemname -c setJava7path.cmd 

它增加/改变了我的整体部署脚本的一行但宜居。