2009-05-10 8 views
2

Ich versuche, herauszufinden, wie die folgende Aufgabe zu erfüllen:Remotely erstellen Netzwerkfreigaben

  1. eine Netzwerkfreigabe erstellen auf einem Remote-Computer .NET
  2. Der Zielcomputer ist im selben Netzwerk .
  3. Die Admin-Benutzername und das Passwort des Zielcomputers sind bekannt.

Ihre Gedanken? Wie würdest du das erreichen?

Antwort

2

Die beste und einfachste Methode zum Ausführen von Windows-Verwaltungsaufgaben aus dem Code ist WMI. Fast alles kann auf einem Windows-Computer, lokal oder remote, über WMI ausgeführt werden.

Um einen freigegebenen Windows-Ordner zu verwalten, müssen Sie mit der Win32_Share WMI-Klasse interagieren.

Beispiel, wie WMI verwenden, um einen freigegebenen Ordner zu erstellen:

ManagementPath path = new ManagementPath("Win32_Share"); 
    path.Server = ".";    // Change this to your server 

    object[] parameters = new object[] { 
     "C:\\TestShare",   // Path to shared folder 
     "Test Share",    // Share name 
     0x0,      // Share type (disk drive) 
     5,       // Maximum amount of concurrent users 
     null,      // Password (optional) 
     null      // Security level (optional) 
    }; 

    ManagementClass share = new ManagementClass(path); 
    object result = share.InvokeMethod("Create", parameters); 

Sie müssen einen Verweis auf die System.Management Anordnung hinzuzufügen, um die WMI-Klassen zuzugreifen. Sie benötigen natürlich auch Zugriff auf den Remote-Computer.

Überprüfen Sie die WMI Reference für weitere Details. Überprüfen Sie speziell die Win32_Share Class Referenz auf, was alle Parameter und Rückkehrcodes bedeuten.

+0

Der Beispielcode hier funktioniert nicht im Server ist remote. Wenn der Server remote ist: - Entfernen Sie "path.Server =". ";" und fügen Sie "path.Path =" \\\\ ServerName \\ ROOT \\ cimv2: Win32_Share ";" – Canacourse

0

http://www.google.ca/search?hl=en&q=create+share+net schlägt vor, dass Sie PInvoke verwenden, um die API NetShareAdd aufzurufen.

Ich habe mich gefragt, ob eine Alternative, um die NET SHARE Befehlszeilenbefehl jedoch aufrufen könnte sein, bei NET HELP SHARE suchen Ich sehe nicht, wie es verwenden, um eine Freigabe auf einem Remote-Computer zu erstellen.

Verwandte Themen