C# 如何在C中检测从一台服务器到另一台服务器的空闲空间和磁盘信息#

C# 如何在C中检测从一台服务器到另一台服务器的空闲空间和磁盘信息#,c#,.net,C#,.net,如果网络上有3台电脑,如果我想从另一台电脑检测一台电脑的可用空间和磁盘详细信息,那么如何进行。。。 我找到了这个代码。但我不知道我应该如何测试它,以了解它是否工作。 这条路对吗 public Hashtable ReadFreeSpaceOnNetworkDrives() { //create Hashtable instance to hold our info Hashtable driveInfo = new Hashtable(); //query the

如果网络上有3台电脑,如果我想从另一台电脑检测一台电脑的可用空间和磁盘详细信息,那么如何进行。。。 我找到了这个代码。但我不知道我应该如何测试它,以了解它是否工作。 这条路对吗

public Hashtable ReadFreeSpaceOnNetworkDrives()
{
     //create Hashtable instance to hold our info
     Hashtable driveInfo = new Hashtable();
     //query the win32_logicaldisk for type 4 (Network drive)
     SelectQuery query = new SelectQuery("select name, FreeSpace from win32_logicaldisk where drivetype=4");

     //execute the query using WMI
     ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
     //loop through each drive found
     foreach (ManagementObject drive in searcher.Get())
     {
        //add the name & freespace to our hashtable
        driveInfo.Add("Drive", drive["name"]);
        driveInfo.Add("Space", drive["FreeSpace"]);
     }
     return driveInfo;
}
更新: 我得到了问题的答案,但我得到了代码,但它是在控制台应用程序中,我希望在windows窗体应用程序中以图形形式表示磁盘空间和驱动器信息。我如何使用此代码并开始执行此操作

        ManagementScope scope = new ManagementScope("\\\\10.74.160.126\\root\\cimv2");
        scope.Connect();

        ObjectQuery query = new ObjectQuery( "SELECT * FROM Win32_OperatingSystem");
        SelectQuery query1 = new SelectQuery("Select * from Win32_LogicalDisk");

        ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);

        ManagementObjectCollection queryCollection = searcher.Get();

        ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1);
        ManagementObjectCollection queryCollection1 = searcher1.Get(); 

        foreach (ManagementObject m in queryCollection)
        {
            // Display the remote computer information
            Console.WriteLine("Computer Name : {0}",
                m["csname"]);
            Console.WriteLine("Windows Directory : {0}",
                m["WindowsDirectory"]);
            Console.WriteLine("Operating System: {0}",
                m["Caption"]);
            Console.WriteLine("Version: {0}", m["Version"]);
            Console.WriteLine("Manufacturer : {0}", m["Manufacturer"]);
            Console.WriteLine();

            }

        foreach (ManagementObject mo in queryCollection1)
        {
            Console.WriteLine("  Disk Name : {0}", mo["Name"]);
            Console.WriteLine("   Disk Size : {0}", mo["Size"]); 
            Console.WriteLine("  FreeSpace : {0}", mo["FreeSpace"]);
            Console.WriteLine("  Disk DeviceID : {0}", mo["DeviceID"]); 
            Console.WriteLine("  Disk VolumeName : {0}", mo["VolumeName"]);
            Console.WriteLine("  Disk SystemName : {0}", mo["SystemName"]); 
            Console.WriteLine("Disk VolumeSerialNumber : {0}", mo["VolumeSerialNumber"]);
            Console.WriteLine(); 
        }
        Console.ReadLine();
        }

变为c#。这可能会对你有所帮助

代码检查运行此程序的pc上的所有驱动器。它返回一个表,每个驱动器有2个条目。一个带名称,一个带可用空间。您只需编写一个使用此方法并显示此数据的简单程序。应该可以从远程计算机查询驱动器。也许这篇文章可以告诉你更多

编辑:


-1:你提供的链接中的代码是VBScript,这对回答这个问题没有帮助,因为在互联网上总是有一个vb到c的转换器。这是一个只有链接的答案。请包括你链接的文章的要点;它可能在将来不可用。
public Hashtable ReadFreeSpaceOnNetworkDrives(String FullComputerName)
{
     ManagementScope scope = new ManagementScope(fullComputerName);
     scope.Connect();
     //create Hashtable instance to hold our info
     Hashtable driveInfo = new Hashtable();
     //query the win32_logicaldisk for type 4 (Network drive)
     SelectQuery query = new SelectQuery("select name, FreeSpace from win32_logicaldisk where drivetype=4");

     //execute the query using WMI
     ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope,query);
     //loop through each drive found
     foreach (ManagementObject drive in searcher.Get())
     {
        //add the name & freespace to our hashtable
        driveInfo.Add("Drive", drive["name"]);
        driveInfo.Add("Space", drive["FreeSpace"]);
     }
     return driveInfo;
}