2009-05-22 3 views
2

Предположим, у меня есть доступ к SMB-серверу по IP 1.2.3.4, как я могу определить список доступных акций?Win32: API вызывает список доступных сетевых ресурсов на сервере?

Проводник Windows может это сделать, когда я вхожу в путь UNC \\ 1.2.3.4 \ - но командная строка "dir \\ 1.2.3.4 \" не работает!

Я пробовал обычные вызовы FindFirstFile/FindNext, которые я успешно использую для чтения файлов и каталогов на каждом общем ресурсе, но они не работают непосредственно с корнем сервера.

В идеале, мне нужно что-то, что работает для XP.

Редактировать: Я хочу сделать это программно, а не из командной строки. Перенаправление и анализ вывода из «net view 1.2.3.4» будут работать, но я идеально ищу API для этой работы.

ответ

4

чистый вид \\ 1.2.3.4

Заканчивать http://www.ss64.com/nt/net_share.html

Edit: Если вы хотите сделать это программно, это выглядит как NetShareEnum будет работать.

+0

+1: Спасибо, это полезно. Я надеялся, что это будет на основе API. синтаксический анализ вывода сетевого представления будет работать, но ... – Roddy

+0

Если вы хотите увидеть все акции (включая скрытые), используйте «net view \\ 1.2.3.4/ALL» –

0

Похоже, вы можете использовать WMI для получения этой информации. Проверьте this post на некоторые аккуратные учебные пособия PowerShell, которые теперь показывают использование объекта WMI Win32_Share.

1

Никогда не используйте WMI (не установлены изначально)
Использование Win32 API для перечисления акций, размещены миллионы раз на группах Google (win32)

+1

WMI существует с Windows XP, так что перестаньте делать вещи. – macbirdie

+0

нет, WMI не работает отлично на XP, даже с интерфейсами. –

Смежные вопросы