PsExecを置き換える代替ユーティリティはありますか?自動化作業に主にバッチスクリプトを使用する場合。ハング/応答しないなどのpsexecの不安定性のため、別の解決策が必要になる場合があります。コミュニティはアドバイスできますか、ありがとう。
編集:psexecに関して2つの特定の問題があります。
https://superuser.com/questions/168706/cant-start-program-by-psexec-on-windows-server-2003-64-bit
リモートSOAP API呼び出しからpsexecを呼び出すだけのASP.NETWebサービスがあります。毎日チェックすると、タスクマネージャーで10〜20のpsexecがハングしているのがわかります。ピーク時には、 Webサーバーは約1〜5の要求を受信しますが、おそらく5分間しか持続しません。以下は私のコードです。
Process psexecProcess = new Process();
ProcessStartInfo psi = new ProcessStartInfo("PsExec.exe");
string psexecArg = "-u " + GetRemoteAccount(serverType)
+ " -p " + GetRemotePW(serverType)
+ " \\\\" + GetManagementServerIP(serverType)
+ " C:\\MyBatchScript.bat " + username;
//set process options
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.RedirectStandardInput = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.CreateNoWindow = true;
psi.Arguments = psexecArg; //set psExec command
psexecProcess.StartInfo = psi;
psexecProcess.Start(); //run PsExec
StreamReader reader1 = psexecProcess.StandardError;
string result1 = reader1.ReadToEnd();
StreamReader reader2 = psexecProcess.StandardOutput;
string result2 = reader1.ReadToEnd();
psexecProcess.WaitForExit();
それで、なぜ私はpsexecにとても不満を感じます。コミュニティは、これらの問題の両方で何か問題を見つけるのを手伝ってくれますか?アドバイス、ありがとう。
EDIT2:64ビットサーバー(Windows Server 2003 64ビット)の代替も必要です。
PowerShell 2には、ファイルのリモート実行を実行する機能があります。
Zoredacheの2番目のポイントに行きます。PsExecはそれが何をするのかかなり上手です。何かがぶら下がっている場合、それはあなたが呼び出しているプログラムである可能性があり、代替手段が必ずしもそれ以上うまくいくとは限りません。
ただし、(スクリプトを介して)リモートで対話しようとしている場合は、Expectのようなものがより良い解決策です。あなたがやろうとしていることについてもっと詳しく教えていただけますか?
最近リリースされたPowerAdmin PAExec これはPsExecの代替品と思われます。