using System;
using System.Management;
using System.IO;
namespace RemoteDiskSpace
{
///
/// Summary description for Class1.
///
class Class1
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
ConnectionOptions opt = new ConnectionOptions();
ObjectQuery oQuery = new ObjectQuery("SELECT Size, FreeSpace, Name, FileSystem FROM Win32_LogicalDisk WHERE DriveType = 3");
StreamReader oReader = new StreamReader("computers.txt");
StreamWriter writer = new StreamWriter("diskSpace.html");
writer.WriteLine("
");
writer.WriteLine(@"
| Machine |
Drive |
Size GB |
Free Space GB |
Free Space % |
FileSystem |
");
string sLine = String.Empty;
while (sLine != null)
{
sLine = oReader.ReadLine();
if( sLine != null)
{
ManagementScope scope = new ManagementScope("\\\\" + sLine + "\\root\\cimv2", opt);
ManagementObjectSearcher moSearcher = new ManagementObjectSearcher(scope, oQuery);
ManagementObjectCollection collection = moSearcher.Get();
writer.WriteLine("| " + sLine + " |
");
Console.Write("Trying " + sLine + "...");
foreach(ManagementObject res in collection)
{
decimal size = Convert.ToDecimal(res["Size"])/1024/1024/1024;
decimal freeSpace = Convert.ToDecimal(res["FreeSpace"])/1024/1024/1024;
writer.WriteLine(" | ");
writer.WriteLine("" + res["Name"] + " | ");
writer.WriteLine("" + Decimal.Round(size, 2) + " GB | ");
writer.WriteLine("" + Decimal.Round(freeSpace, 2) + " GB | ");
writer.WriteLine("" + Decimal.Round(freeSpace/size, 2)*100 + "% | ");
writer.WriteLine("" + res["FileSystem"] + " | ");
writer.WriteLine("
");
}
Console.WriteLine("done!");
}
}
Console.WriteLine("Please open diskSpace.html for result");
writer.WriteLine("
");
writer.Close();
oReader.Close();
}
}
}