Como faço para definir a pasta Compartilhar programaticamente em vb.net
-
23-09-2019 - |
Pergunta
Tenho o ambiente cliente-servidor e desenvolvi um projeto para o cliente-servidor.
Preciso compartilhar uma pasta da minha máquina de servidor programaticamente usando o vb.net
Por favor me ajude.
Solução
Aqui está um exemplo que mostra o conceito usando ManagementClass. É C#, mas facilmente conversível para vb.net:
ATUALIZAR:
Directory.CreateDirectory("C:\MyTestShare")
Dim managementClass As New ManagementClass("Win32_Share")
Dim inParams As ManagementBaseObject = managementClass.GetMethodParameters("Create")
inParams.Item("Description") = "My Files Share"
inParams.Item("Name") = "My Files Share"
inParams.Item("Path") = "C:\MyTestShare"
inParams.Item("Type") = 0
If (DirectCast(managementClass.InvokeMethod("Create", inParams, Nothing).Properties.Item("ReturnValue").Value, UInt32) <> 0) Then
Throw New Exception("Unable to share directory.")
End If
Outras dicas
Eu tenho código que se parece com isso que funciona nas máquinas Vista e Win2K3, mas quando eu o experimento no Windows Server 2008 R2 (com atualizações recentes), ele falha com um erro de "acesso negado". Eu tentei o seu código exato acima e o mesmo resultado. Eu sou um administrador na caixa e tentei desativar o UAC, mas sem nenhum efeito.
(Eu sei que isso não é uma resposta, não tenho poder para comentar)