Laden...

Windows Freigabeordner per UMC Pfad erstellen

Erstellt von Olii vor 5 Jahren Letzter Beitrag vor 5 Jahren 891 Views
O
Olii Themenstarter:in
76 Beiträge seit 2017
vor 5 Jahren
Windows Freigabeordner per UMC Pfad erstellen

Hallo,
Ich versuche gerade für unser netzwerk ein kleines Programm zu schreiben um Freigaben einzurichten.


void QshareFolder()

    {

      //String FolderPath = @"D:\TestFreigabe";

      //String ShareName = "TestFreigabe";

      //String Description = "Eine Test-Freigabe";


 

      DataTable dtFreigaben;

      try

      {

        // Create a ManagementClass object

        ManagementClass managementClass = new ManagementClass("Win32_Share");


 

        dtFreigaben = (DataTable)dbgFreigaben.DataSource;

        foreach (DataRow dtRow in dtFreigaben.Rows)

        {

          // Create ManagementBaseObjects for in and out parameters

          ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");


 

          ManagementBaseObject outParams;


 

          // Set the input parameters

          inParams["Description"] = "";

          inParams["Name"] = dtRow["Freigabe"];

          inParams["Path"] = dtRow["LocalPath"];

          inParams["Type"] = 0x0; // Disk Drive


 

          //Another Type:

          // DISK_DRIVE = 0x0

          // PRINT_QUEUE = 0x1

          // DEVICE = 0x2

          // IPC = 0x3

          // DISK_DRIVE_ADMIN = 0x80000000

          // PRINT_QUEUE_ADMIN = 0x80000001

          // DEVICE_ADMIN = 0x80000002

          // IPC_ADMIN = 0x8000003

          //inParams["MaximumAllowed"] = int maxConnectionsNum;

          // Invoke the method on the ManagementClass object


 

          outParams = managementClass.InvokeMethod("Create", inParams, null);

          // Check to see if the method invocation was successful


 

          if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)

          {

            throw new Exception("Unable to share directory.");

          }

        }

      }

      catch (Exception ex)

      {

        //MessageBox.Show(ex.Message, "error!");

      }

    }

Mit diesem code kann ich local auf meinem Rechner welche erstell und funktioniert perfekt. Aber der path läst nur local paths zu und jetzt weiß ich nicht wie ich eine Freigabe auf einem anderen Rechner per UMC Pfad erstellen kann.

Für hilfe bin ich sehr dankbar.
Gruß
Olli

3.170 Beiträge seit 2006
vor 5 Jahren

Hallo,

ich schätze mal, Du musst einen Konstruktor von ManagementClass benutzen, dem Du ein ManagementScope übergeben kannst, und in diesem ManagementScope den anderen Rechner angeben.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca