Win32: chamadas de API para listar ações de rede disponíveis em um servidor?
-
23-08-2019 - |
Pergunta
Suponha que eu tenho acesso a um servidor SMB em IP 1.2.3.4, como posso determinar a lista de ações disponíveis?
Windows Explorer pode fazê-lo quando eu inserir um caminho UNC \\ 1.2.3.4 \! - mas comando "dir \\ 1.2.3.4 \" prompt falha
Eu tentei os habituais chamadas FindFirstFile / FindNext -. Que eu uso com sucesso para ler os arquivos e diretórios em cada ação, mas eles não trabalham diretamente na raiz do servidor
Idealmente, eu preciso de algo que funciona para XP em diante.
Editar: que eu quero fazer isso programaticamente, em vez da partir de linha de comando. Redirecionando e analisando a saída de 'net view 1.2.3.4' iria funcionar, mas estou procurando idealmente uma API para este trabalho.
Solução
De acordo com os documentos há um NetShareEnum
e uma WNetEnumResource
função.
Outras dicas
net view \\ 1.2.3.4
Confira http://www.ss64.com/nt/net_share.html
Edit: Se você quiser fazer isso programaticamente, parece que NetShareEnum iria funcionar.
Parece que você pode usar o WMI para obter essa informação. Verifique este post para alguns tutoriais PowerShell puros que mostram agora usar o Win32_Share WMI objeto.
Nunca use WMI (não instalado nativamente)
Use Win32 API para ações enumerar milhões postados de vezes no Google Groups (win32)