27. oktober 2008 - 10:30Der er
9 kommentarer og 1 løsning
Oprette en share folder på en remote server
Hej Jeg vil gerne oprette en shared folder på en remote windows 2000 server. Min kode er: ------------------------------------------------ try { // create a directory string userKlass = "2005V"; string userName = "DSSSSSS"; string shareName = userName + "$"; string path = @"\\IP adresse \d$\Elever\" + userKlass + @"\" + userName + ""; Directory.CreateDirectory(path);
// Create a ManagementClass object ManagementClass managementClass = new ManagementClass("Win32_Share"); // Create ManagementBaseObjects for in and out parameters ManagementBaseObject inParams = managementClass.GetMethodParameters("Create"); ManagementBaseObject outParams; // Set the input parameters inParams["Description"] = "My Files Share"; inParams["Name"] = "My Files Share"; inParams["Path"] =path; inParams["Type"] = 0x0; // Disk Drive // Invoke the method on the ManagementClass object ManagementOperationObserver man = new ManagementOperationObserver(); Console.WriteLine(man.ToString()); 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 e) { Console.WriteLine(e.Message + "error"+e.GetType().ToString()); //return e.Message; } Console.ReadKey(); ------------------------------------ Men den siger unable to share. Den oprette kataloget uden at dele det. Hvad er galt?
Overså lige følgende: inParams["Path"] = path; skal i stedet være stien til den lokale mappe på serveren, som du ønsker at share. F.eks.: inParams["Path"] = @"D:\Elever\DinMappe"
Nu siger den "Ugyldige parametre" Sådan ser det ud nu ---------------------------------------------------------------- try { // create a directory string userKlass = "2005V"; string userName = "DSSssSSS1"; string shareName = userName + "$"; string path = @"\\IP adresse \d$\Elever\" + userKlass + @"\" + userName + ""; string path1 = @"D:\Elever\"+ userKlass + @"\" + userName + "";
Directory.CreateDirectory(path);
ManagementClass managementClass = new ManagementClass(@"\\IP adresse\root\cimv2\", "Win32_Share", null);
// Create ManagementBaseObjects for in and out parameters
ManagementBaseObject inParams = managementClass.GetMethodParameters("Create"); ManagementBaseObject outParams; inParams["Description"] = "My Files Share"; inParams["Name"] = "My Files Share"; inParams["Path"] = path1; inParams["Type"] = 0x0; // Disk Drive // Invoke the method on the ManagementClass object ManagementOperationObserver man = new ManagementOperationObserver(); Console.WriteLine(man.ToString()); 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 e) { Console.WriteLine( e.Message + "error"+ e.GetType().ToString()); } Console.ReadKey();
Koden ser umiddelbart korrekt ud, så jeg kunne forestille mig at der allerede er oprettet et share med navnet "My Files Share", og det derfor giver problemer da du prøver at oprette endnu et share med samme navn.
Sørg derfor for at inParams["Name"] bliver sat til noget unikt. Kunne måske være en kombination af userKlass og userName?
Har du en liste over diverse user.Properties[? Når man opretter bruger på AD så hedder det user.Properties["givenName"]=... user.Properties["sn"]=... Det er i hvert fald en jeg skal finde. Når jeg åbner Active directory users and computers så står der Name Type modified Description Hvilket er Name? Ellers tak Du har været et stort hjælp.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.