Получить список всех общих папок UNC на сервере локальной сети

I ' я пытаюсь получить список всех общих папок, доступных на локальном сервере интрасети.

System.IO.Directory.GetDirectories () отлично работает для пути, подобного \\ myServer \ myShare , однако я получаю исключение для пути, например \\ myServer :

Исключение необработанного: System.ArgumentException: путь UNC должен иметь форму \ server \ share.

Есть ли способ получить список всех общих папок для сервера? В конечном итоге я ищу метод, который может обрабатывать оба сценария на основе заданного пути - возвращать список всех общих ресурсов для данного сервера и возвращать список всех подкаталогов для данной общей сетевой папки.

16
задан Abe Miessler 25 August 2010 в 14:49
поделиться

2 ответа

Я думаю, это то, что вы ищете http://www.codeproject.com/KB/IP/networkshares.aspx

3
ответ дан 30 November 2019 в 23:05
поделиться

Вот методика, использующая System.Management (добавьте ссылку на эту сборку):

using (ManagementClass shares = new ManagementClass(@"\\NameOfTheRemoteComputer\root\cimv2", "Win32_Share", new ObjectGetOptions())) {
    foreach (ManagementObject share in shares.GetInstances()) {
        Console.WriteLine(share["Name"]);
    }
}

Требуются соответствующие разрешения.

6
ответ дан 30 November 2019 в 23:05
поделиться