2009-05-22 20 views
2

假設我可以訪問IP 1.2.3.4的SMB服務器,如何確定可用共享列表?Win32:API調用列出服務器上的可用網絡共享?

Windows資源管理器可以在輸入UNC路徑\\ 1.2.3.4 \時執行此操作,但命令提示符「dir \\ 1.2.3.4 \」失敗!

我已經嘗試了通常的FindFirstFile/FindNext調用 - 我成功地使用它來讀取每個共享上的文件和目錄,但它們不直接在服務器根上運行。

理想情況下,我需要一些適用於XP的東西。

編輯:我想以編程方式執行此操作,而不是從命令行執行。重定向和解析'net view 1.2.3.4'的輸出將會起作用,但我理想的是爲這項工作尋找一個API。

回答

4

NET VIEW \\ 1.2.3.4

退房http://www.ss64.com/nt/net_share.html

編輯:如果您想以編程方式做到這一點,它看起來像NetShareEnum會工作。

+0

+1百萬次:謝謝,這是非常有用的。我希望以此爲基礎的基於API的方式。解析淨視圖的輸出將工作,但... – Roddy 2009-05-22 21:11:46

+0

如果你想看到所有的股份(包括隱藏的),然後使用「淨視圖\\ 1.2.3.4/ALL」 – 2009-05-22 21:12:45

0

看來您可以使用WMI來獲取此信息。請查看this post瞭解一些整潔的PowerShell教程,該教程現在顯示使用Win32_Share WMI對象。

1

不要使用WMI(沒有安裝本地)
使用WIN32 API枚舉股,張貼在谷歌羣組(win32)中