Перечисление списка дисков на рабочей станции удаленного домена - PullRequest
0 голосов
/ 29 июня 2011

Я пытаюсь найти хороший способ перечисления жестких дисков на удаленных рабочих станциях, возможно, включая административные общие ресурсы, чтобы я мог проверять ключевые файлы на них без необходимости доступа к ним через sneakernet.У меня есть права администратора домена.Политика безопасности запрещает использование WMI, что было бы отличным решением.

Я могу получить список компьютеров, используя Active Directory, но мне нужен какой-то способ определить, какие диски доступны в каждой системе.Возможна ли такая вещь?Один из разработчиков предложил несколько лет назад код VB6, который использовал WNetOpenEnum, но я надеялся, что, поскольку мы находимся в .NET Framework 4, возможно, есть более элегантный / управляемый способ работы с этим.

Любые идеи будут высоко оценены!

РЕДАКТИРОВАТЬ: Я стремлюсь использовать технологии, которые в целом поддерживаются, такие как стандартные API и т. Д. WMI является отличным решением, но, очевидно, заблокированпо умолчанию используется брандмауэром Windows, поэтому его доступность не гарантируется.

1 Ответ

2 голосов
/ 29 июня 2011

Добавьте ссылку на System.Management, затем:

using System;
using System.Management;

namespace WmiConnectRemote
{
    class Program
    {
        static void Main(string[] args)
        {
            var machine = "XXXX";

            var options = new ConnectionOptions { Username = "XXXX", Password = "XXXX" };

            var scope = new ManagementScope(@"\\" + machine + @"\root\cimv2", options);

            var queryString = "select Name, Size, FreeSpace from Win32_LogicalDisk where DriveType=3"; var query = new ObjectQuery(queryString);

            var worker = new ManagementObjectSearcher(scope, query);

            var results = worker.Get();

            foreach (ManagementObject item in results)
            {
                Console.WriteLine("{0} {2} {1}", item["Name"], item["FreeSpace"], item["Size"]);
            }

        }
    }
}
...