[Code] Netzlaufwerke per Programm hinzufügen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Fu$$el, 15. Januar 2011 .

  1. 15. Januar 2011
    Netzlaufwerke per Programm hinzufügen

    Nabend,

    wie der Name schon sagt, bin ich gerade dabei per Programm Netzlaufwerke zu verbinden.
    Bei uns auf der Arbeit muss man immer alle Netzlaufwerke von Hand verbinden (sind >10 Stück), wenn man an einen anderen Rechner geht. dafür brauch ich das kleine Programm.

    Nun stellen sich mir allerdings ein paar Fragen, da ich so gut wie keine Ahnung von Programmierung habe. Hab nur mal früher in der schule vb gehabt

    Per Google habe ich das hier gefunden:
    Code:
    net use x: \\"server"\"laufwerk" /user:"user" password:"Kennwort"
    1. Ist das "x" der laufwerkbuchstabe, den das Laufwerk später bekommt?
    (Der Laufwerkbuchstabe muss zu jedem Netzlaufwerk passen, ansonsten laufen unsere Programme nicht.)

    2. Wenn wir einen Rechner starten, muss jeder sich mit seiner Anmeldung anmelden. Brauche ich dann noch user & password, wenn man nach dem Login über die Netzwerkumgebung auf die Netzlaufwerke ohne pass zugreifen kann?

    3. Den Code muss ich doch nur in ne .txt Datei packen und die nacher in *.bat oder *.cmd umbennen oder? Welches sollte man nehmen?

    Hoffe ihr könnt mir da weiterhelfen =)

    Gruß
    FusseL
     
  2. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    x: ist Laufwerksbuchstabe der verbindet dann zu "server"\"laufwerk" mit dem Benutzer sowieso dem Kennwort was du einträgst.
    Musst aber aufpassenj der der zugriff auf die Bat hat könnte dein PW einsehen^^
    und dann einfach in .bat umbennen right.
    einfach alle 10 stück untereinander so eintragen
     
  3. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    probiers doch aus obs so funktionierd wie dus dir vorstellst.
    ich frag mich wieso du da nen thread eröffnest wenns nich tut kannst ja einen auf machen.
     
  4. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    also ich würd auf der Arbeit auch net sonderlich gerne mit .bat dateien rumspielen wo ich net 100% weiß was passieren wird^^
     
  5. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    die frage ist nur, ob ich benutzternamen und passwort brauche, wenn ich per netzwerkumgebung so drauf connecten kann ohne nen pass einzugeben. Wenn es ohne Benutzername und Passwort geht, würde ich die Datei gerne in der Abteilung verbreiten, weil wir alle den scheiß per hand eintragen müssen.

    ich mach jetzt schon einen thread auf, da ich auf der Arbeit kein Internet habe. Ich könnte dann jeden Fehler erst Abends zu hause beheben und dann erst wieder am nächsten tag testen.
     
  6. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    achso, nope dann eig. net
     
  7. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    danke dir. werde es am montag mal testen und ggf. nochmal hier fragen.
     
  8. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    bitte warst ja eig. kein schwerer fall, hast ja alles selber gerafft ;D
     
  9. 16. Januar 2011
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Netzlaufwerke per Programm hinzufügen

    Naja jetzt bin ich allerdings an nem Punkt wo ich grad nichts mehr raff

    Ich hab das jetzt mal ein wenig erweitert.

    Das Script fragt jetzt erst ab, ob das Netzlaufwerk online ist.
    Wenn es online ist, guckt er ob der Laufwerksbuchstabe belegt ist. wenn nicht verbindet er.
    Falls das netzlaufwerk offline ist, spuckt er ne meldung aus.

    Hier mal der Code:
    Code:
    @echo off 
    title Verbinden der Netzlaufwerke
    echo ************************************ 
    echo * * 
    echo * Verbinden der Netzlaufwerke * 
    echo * * 
    echo ************************************ 
    echo. 
    echo. 
    echo Netzlaufwerke werden verbunden..
    echo.
    echo.
    :Laufwerk Z 
    echo Laufwerk Z wird verbunden 
    if exist \\htpc-pc\d (
     if not exist Z: net use Z: \\htpc-pc\d
    ) ELSE (
     echo Laufwerk Z konnte nicht verbunden werden.
     echo Bitte pruefen Sie ob eine Verbindung mit dem Firmennetzwerk besteht.
    )
    echo.
    
    :Laufwerk Y
    echo Laufwerk Y wird verbunden 
    if exist \\htpc-pc\y (
     if not exist Y: net use Y: \\htpc-pc\d
    ) ELSE (
     echo Laufwerk Y konnte nicht verbunden werden.
     echo Bitte pruefen Sie ob eine Verbindung mit dem Firmennetzwerk besteht.
    )
    
    echo.
    echo.
    pause
    Ist der Code so erstmal halbwegs in Ordnung?
    Hab das alles mehr oder weniger nach Gefühl geschrieben, hatte sonst noch nichts mit bat datein zu tun.

    So sieht die Ausgabe aus, wenn noch keine Laufwerke verbunden sind. Es ist eigentlich alles wie ich es möchte. (Netzlaufwerk Y gibt es nicht, daher die Meldung)
    Bild

    Wenn allerdings ein Laufwerk verbunden ist. In dem Fall "Z", wüßte ich nicht wie ich da ne Textausgabe hinbekomm, dass das Laufwerk schon verbunden ist.
    Bild

    btw:
    ich stell gerade fest, dass programmieren irgendwie spaß macht, obwohl es nur was stumpfsinniges ist. Wollte eigentlich schon lang im bett sein
     
  10. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    Naja das Stichwort dabei lautet Rückgabewert. Hab kurz google angeworfen und folgenden code hab ich gefunden. Musst du natürlich für deinen Fall anpassen. (rsh ist der befehl in dem beispiel, welcher bei dir net use ist)

    Code:
    rsh 10.128.20.2 -l test PROGRAMS/test.csh test %1 %2
    If not errorlevel 0 goto nichtfunktioniert
    goto ende
    
    :nichtfunktioniert
    RSH hat nicht funktioniert, bitte Programm neu starten
    goto ende
    
    :ende
    Auf Wiedersehen
     
  11. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    die Fehlermeldungen sind immer das spannenste und man kann dann immer net aufhören und selbst wenn du ins bett wärst, du würdest auch dort noch drüber nachdenken wo der kleine minimale Fehler ist ^^
     
  12. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    Danke für deinen Post, allerdings war ich dafür irgendwie zu blöd
    Irgendwie hat der bei mir alles als errorcode 0 erkannt.

    Hab noch bis halb 5 vorm Rechner gehockt
    Naja aber ich denke ich habs hinbekommen. Kann sich das mal wer durchlesen und gucken ob es so geht?

    Code:
    @echo off 
    title Verbinden der Netzlaufwerke
    echo ************************************ 
    echo * * 
    echo * Verbinden der Netzlaufwerke * 
    echo * * 
    echo ************************************ 
    echo. 
    echo. 
    echo Netzlaufwerke werden verbunden..
    echo.
    echo.
    rem **********Laufwerk1**********
    echo Verbinden von Laufwerk Z..
    if exist \\htpc-pc\d (
     if not exist Z: net use Z: \\htpc-pc\d >NUL
     echo Verbindung hergestellt
    ) ELSE (
     echo Laufwerk Z konnte nicht verbunden werden.
     echo Bitte pruefen Sie ob eine Verbindung mit dem Firmennetzwerk besteht.
    )
    echo.
    echo.
    rem **********Laufwerk2**********
    echo Verbinden von Laufwerk Y..
    if exist \\htpc-pc\y (
     if not exist Y: net use Y: \\htpc-pc\y >NUL
     echo Verbindung hergestellt
    ) ELSE (
     echo Laufwerk Y konnte nicht verbunden werden.
     echo Bitte pruefen Sie ob eine Verbindung mit dem Firmennetzwerk besteht.
    )
    echo.
    echo.
    pause
     
  13. 16. Januar 2011
    AW: Netzlaufwerke per Programm hinzufügen

    Hmm, ich sehe grade, dass du net use nur aufrufst, wenn z.B. Z: nicht existiert. In dem Fall, dass es existiert, wird net use nicht aufgrufen, deswegen kriegst du wahrscheinlich die 0 vom if oder halt sonstwoher, aber auf keinen Fall vom net use. So bringt dir der Rückgabewert natürlich nix.

    Hier mal, wie es funktionieren sollte:

    Code:
    if exist \\htpc-pc\d (
     if not exist Z: (
     net use Z: \\htpc-pc\d >NUL
     echo Verbindung hergestellt
     ) else (
     echo Laufwerk Z: existiert bereits
     )
    ) ELSE (
     echo Laufwerk Z konnte nicht verbunden werden.
     echo Bitte pruefen Sie ob eine Verbindung mit dem Firmennetzwerk besteht.
    )
    
    Ansonsten kannst du auch einfach in jedem Fall net use aufrufen (ohne vorher den Server und das Laufwerk zu checken) und dann anhand des Fehlercodes die Ausgabe für den User machen. In deinem Fall kommt, falls net use aufgerufen wird (weil die beiden if's vorher erfüllt waren) und irgendwas verackt (aus welchem Grund auch immer) "Verbindung hergestellt", obwohl das ja nicht so ist.

    also sowas wie:
    Code:
    net use Z: \\htpc-pc\d >NUL
    set ec=%errorcode%
    if ec == 0 echo Verbindung hergestellt
    else if ec == 1 echo Server kann nciht erreicht werden
    else if ec == 2 echo Laufwerk ist belegt
    else Unerwarteter Fehler
    
    Wobei du natürlich die Errorcodes von net use für die Fälle, die du ausschreiben willst, nachgucken müsstest.
    [Meine Batch-Syntax-Kenntnisse beschränken sich leider auf ein Minimum, aber vom Prinzip muss es so oder so ähnlich funktionieren]

    Falls es dir nur wichtig ist, obs geklappt hat oder nicht lass die else if ec == x Zeilen wech. Dann hast du nur klappt oder klappt nicht. Zusätzlich dazu kannst du dir dann das speichern des errorcodes in der Variable ec sparen, da du ihn in dem Fall nur 1 mal abfragst, nicht mehrmals.

    Anstatt der else-if's kannst du, solltest du gern mehrere Fälle (>3) haben wollen, auch nen switch benutzen, wenns sowas in Batch gibt. Macht das selbe, sieht dann nur hübscher aus und wahrscheinlich kannst du dir dann auch das Zwischenspeichern des errorcodes sparen.

    Falls irgendwas unklar ist, oder du weitere Hilfe benötigst, sag Bescheid.
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.