[C/C++] Problem bei Übergabe des Benutzer für net use

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von mYnon, 16. Oktober 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. Oktober 2008
    Problem bei Übergabe des Benutzer für net use

    Hallo Progger-Gemeinde,

    also ich hab ein Problem mit der Benutzung von net use in C++!
    Ich wollte das was ich in einer Batch geschafft habe nun in C++ programmieren.

    Also zum Ablauf:

    1.Der Benutzer gibt Benutzername und Password ein.
    2.Danach wird an den Benutzername eine Domäne vorne drangehängt.
    3.Dann wird dem Befehl net use (per System aufgerufen) der Benutzer mit Domäne und das Password übergeben.

    So der Code sieht nun so aus:

    Code:
    {
    string benutzer,password,domain;
     
     domain="Domäne\\";
     
     cout<<"Bitte den Benutzer eingeben:"<<endl;
     1. cin>>benutzer;
     cout<<"Bitte das Password eingeben:"<<endl;
     cin>>password;
     
     2. benutzer=domain+benutzer; //Anfügen der Domäne an den Benutzer
     
    
     3. system("net use l: \\\\server\\freigabe /user:benutzer password /persistent:yes");
    };
    
    So wenn ich das dann ausführe kommt die Fehlermeldung von net use, dass entweder der Benutzername oder das Password falsch sind und man sich nicht anmelden kann.

    Bis jetzt hab ich den Fehler noch nicht gefunden, habe aber schon einge Sachen ausprobiert.
    Die Syntax von net use ist richtig, da sie auch so in der Batch funktioniert. Außer unter C++ muss
    man da irgednwas beachten bis auf das man den Backslash zweimal machen muss.

    Es liegt bestimmt daran, dass der Benutzername dadurch das der "\" was bestimmtes in C++ ist, nicht richtig übergeben wird.

    Ich hoffe ihr könnt mir mit diesen Informationen helfen.

    mfg mYnon
     
  2. 16. Oktober 2008
    AW: Problem bei Übergabe des Benutzer für net use

    Code:
    system("net use l: \\\\server\\freigabe /user:[COLOR="Red"]benutzer password[/COLOR] /persistent:yes");
    Du übergibst als Benutzername die Zeichenkette "benutzer" und als Passwort "password" und nicht die Werte der Variablen. Damit die Werte der Variablen genommen werden, musst du den String folgendermaßen zusammensetzen:

    Code:
    system("net use l: \\\\server\\freigabe /user:" [COLOR="Red"]+ benutzer +[/COLOR] " " [COLOR="Red"]+ password +[/COLOR] " /persistent:yes");
     
  3. 16. Oktober 2008
    AW: Problem bei Übergabe des Benutzer für net use

    Dank schonmal für die Hilfe. Klingt auch plausibel so, nur jetzt meckert mir das Programm rum.

    Fehlermeldung:
    Code:
    44:cannot convert `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `const char*' for argument `1' to `int system(const char*)' 
    Gibt es irgendeine Besonderheit wenn man mit strings arbeitet?
    Und sollte ich vll. statt string ein char-Array nehmen.

    (Hab schon lange nicht mehr programmiert und wollte es mal wieder versuchen )

    mfg mYnon
     
  4. 16. Oktober 2008
    AW: Problem bei Übergabe des Benutzer für net use

    Sry, konnte es vorhin net ausprobieren.

    So sollte es gehen:

    Code:
    system(("net use 1: \\\\server\\freigabe /user: " + benutzername + " " + password + " /persistent:yes").c_str());
    Evtl. musst du noch ein #include <string> machen
     
  5. 16. Oktober 2008
    AW: Problem bei Übergabe des Benutzer für net use

    Hammer, besten Dank! Programm funktioniert einwandfrei!
    Bewertung hast du schon für die erste HIlfe bekommen!

    Und nochmals danke, mal wieder was neues gelernt und das Prog funzt auch!^^

    mfg mYnon
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.