2015-10-28 94 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 

它增加/改變了我的整體部署腳本的一行但宜居。