ネットワーク上のすべてのマシンをデフラグするユーティリティを作成しようとしています。WMIのDefragメソッドとDefragAnalysisメソッドを使用して成功しましたが、WindowsXPとの互換性はありません。ネットワーク上にいくつかのXPマシンがあるため、これは問題です。XPマシンでdefrag.exeプロセスをローカルで呼び出してデフラグを実行することはできましたが、リモートマシンでの呼び出しに問題があります。以下はローカルで動作する私のコードです。誰かが私のネットワーク上のリモートマシンでこれを動作させるのを手伝ってくれませんか?少しWMIを使用して支援しようとしましたが、C#とWMIを初めて使用するため、成功しませんでした。ありがとうございます。
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "defrag";
info.Arguments = volume + " -f";
info.UseShellExecute = false;
info.CreateNoWindow = true;
info.RedirectStandardOutput = true;
Process defrag = Process.Start(info);
defrag.PriorityClass = ProcessPriorityClass.BelowNormal;
while (!defrag.HasExited)
{
System.Threading.Thread.Sleep(1000);
Process[] procs = Process.GetProcessesByName("dfrgntfs");
if (procs != null && procs.Length > 0)
{
procs[0].PriorityClass = ProcessPriorityClass.Idle;
defrag.WaitForExit();
}
result = null;
while(!defrag.StandardOutput.EndOfStream)
{
//get output and store results
}