Я написал некоторый базовый код на С#, например:
//Connection credentials to the remote computer - not needed if the logged in account has access
ConnectionOptions oConn = new ConnectionOptions();
oConn.Username = "";
oConn.Password = "";
System.Management.ManagementScope oMs = new System.Management.ManagementScope("\\MachineX", oConn);
//get Fixed disk stats
System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3");
//Execute the query
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs,oQuery);
//Get the results
ManagementObjectCollection oReturnCollection = oSearcher.Get();
//loop through found drives and write out info
foreach( ManagementObject oReturn in oReturnCollection )
{
// Disk name
Console.WriteLine("Name : " + oReturn["Name"].ToString());
// Free Space in bytes
Console.WriteLine("FreeSpace: " + oReturn["FreeSpace"].ToString());
// Size in bytes
Console.WriteLine("Size: " + oReturn["Size"].ToString());
}
Где имя пользователя и пароль предоставляются в качестве учетных данных для моей локальной учетной записи рабочего стола.
Когда я добираюсь до строки, где тип ManagementObjectCollection возвращается из метода ManagementObjectSearcher Get(), я получаю сообщение об ошибке (во время выполнения), говорящее о том, что время ожидания вызова функции истекло, когда я пытаюсь оценить эту строку (последняя строка перед циклом foreach).
Исключения нет, поэтому никаких подробностей об ошибке нет.
Как я могу это исправить? Код выглядит хорошо для меня? Этот код находится на другой машине, поэтому я использую код отсюда (в значительной степени следует тем же шагам): http://www.csharphelp.com/archives2/archive334.html
Спасибо