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 に答える