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
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