我正在尝试创建一个实用程序来对我网络上的所有机器进行碎片整理。我使用 WMI 的 Defrag 和 DefragAnalysis 方法取得了成功,但是它们与 Windows XP 不兼容。这是一个问题,因为我们在网络上有一些 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
}