Avatar billede fredag1 Nybegynder
27. oktober 2008 - 10:30 Der 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?
Avatar billede Spotgun Seniormester
27. oktober 2008 - 10:52 #1
Prøv at rette din managementClass object til:

ManagementClass managementClass = new ManagementClass(@"\\IP adresse\root\cimv2", "Win32_Share", null);

Resten burde være korrekt. Har ikke testet ovenstående, men det burde virke.
Avatar billede fredag1 Nybegynder
27. oktober 2008 - 11:02 #2
Jeg får "unable to share igen". Hvad betyder root og hvad betyder cimv2?
Avatar billede Spotgun Seniormester
27. oktober 2008 - 11:44 #3
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"

Har lige testet det, og det fungerer korrekt her.
Avatar billede fredag1 Nybegynder
27. oktober 2008 - 12:50 #4
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();

        }
    }
Avatar billede fredag1 Nybegynder
27. oktober 2008 - 12:59 #5
Nu virker det!
Avatar billede Spotgun Seniormester
27. oktober 2008 - 13:01 #6
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?
Avatar billede fredag1 Nybegynder
27. oktober 2008 - 13:55 #7
cimv2 hvad beydder det forresten?
Avatar billede Spotgun Seniormester
27. oktober 2008 - 14:04 #8
CIMV2 står for "Common Information Model". Google kan være behjælpelig med mere info, hvis du vil vide hvad du ellers kan pille i, i det namespace.
Avatar billede fredag1 Nybegynder
27. oktober 2008 - 14:26 #9
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.
Avatar billede Spotgun Seniormester
27. oktober 2008 - 14:44 #10
Jeg har ikke en komplet liste, men du kan da se de mest normale properties her:
http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester