Avatar billede stgrdk Nybegynder
04. maj 2011 - 13:50 Der er 1 kommentar og
1 løsning

Kan man share en mappe på en given server over hjemmeside??

Hej Eksperter... :)

Jeg har lige en forespørgsel om min tanke egentlig kan lade sig gøre:

I mit firma har vi en masse servere og mange netværks shares.

Når der skal oprettes et nyt share, ville det være en fed mulighed at kunne gøre det igennem vores eget selv kreeret server manager hjemmeside da dette ville letteregøre oprettelse af nye afdelinger og fælles mapper.

Det man gør er:

Går ind på siden, klikker på et link "Opret Share" angiver Servernavn og mappe navn og så oprettes mappen på den givne server...

Indtil her går det fint...

Derefter er vi ude i at den skal share mappen så man kan se den over netværket, og det er det her der fejler.
Man kan jo godt share en mappe via et bat script lokalt på serveren, men kan man via en hjemmeside oprette en mappe på en given server og så få den delt efterfølgende med Fuld Rettighed på sharet??
Avatar billede crilledk Nybegynder
04. maj 2011 - 14:18 #1
I C#.NET kan man finde følgende eksempel på google support

Code:
=====
private static void shareFolder(string FolderPath, string ShareName, string Description)
{
try{
    // 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"] = Description;
    inParams["Name"] = ShareName;
    inParams["Path"] = FolderPath;
    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!");

}
}
====

Husk at Add Reference -> System.Management. 

Desuden render du ind i et sikkerhed problem da den bruger din webserver bruger ikke har tilladelse til at share drev. Og som udgangspunkt heller ikke burde have det. Du skal tænke dig godt om hvis du gør det.

Ellers skal du kigge på CAS (Code Access Security).

For yderliger info omkring System.Management skal du se på MSDN http://msdn.microsoft.com/en-us/library/dwd0y33x(vs.71).aspx.

God fornøjelse og lad os høre hvordan det går.
Avatar billede stgrdk Nybegynder
17. august 2011 - 07:07 #2
Det kom desværre aldrig til at fungere og blev derfor også skrottet.
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
Kurser inden for grundlæggende programmering

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