Batch Manuelle Eingabeaufforderung vor Netzlaufwerk Einbindung via Batch !?

FutureBase80

Newbie
Registriert
Jan. 2013
Beiträge
4
Hallo,
ich hab ein kleines Problem und hoffe auf Unterstützung.
Ich nutze ein kleines Batch um zu Hause, auf meinem Laptop alle
Netzlaufwerke beim Windows start automatisch einbinden zu lassen.
Das funktioniert in vielen Fällen soweit auch gut :)
ABER:
Häufig bin ich unterwegs, bzw. mein W-Lan Verbindung steht einfach noch nicht,
ich erhalte dann eine Fehlermeldung und muss die Batch Datei manuell neu starten.

Mein Ziel!
Eine Eingabe Aufforderung, zb. mit folgender Bildschirmausgabe:
"Netzlaufwerke einbinden" "JA" "NEIN" , bzw, "automatisch JA, nach 30 Sek"
JA, am liebsten über die Taste Enter, NEIN= mit Esc, Rücktaste oder N

Meine aktuelle Batch sieht so aus:

@echo off
cls
echo Erst bestehende Verbindungen loesen
net use * /delete /yes
echo Verbinde Netzlaufwerk
echo.
net use F: \\SYN212\Chris /user:admin Passwort
net use V: \\SYN212\Video /user:admin Passwort
net use M: \\SYN212\Musik /user:admin Passwort
echo.
echo Verbindung erfolgreich
exit


Super wäre, wenn das ganze dabei im Hintergrund nicht mehr zu sehen wäre, und für die Eingabe nur ein kleines Fenster mit dem Eingabe hinweis aufgeht. Aber das ist nicht zwingend notwendig.

Vielen Dank & Grüße
Chris
 
Also unter Windows setz ich ne Haken, wenn ich die Netzlaufwerke einrichte, das diese bei Anmeldung automatisch verbunden werden. Und wenn die Netzverbindung ein bisschen länger dauert, bis diese aufgebaut ist, dann stört das Windows wenig. Er probierts automatisch nochmal.

Warum brauch man also dafür ein Skript? oO
 
Hi,
das mit der automatischen Anmeldung der Netzlaufwerke über Windows hatte ich anfangs
auch so eingerichtet, aber irgendwie funktionierte das nicht. Gabe jedes mal ne Fehlermeldung
das nicht alle Laufwerke wiederherstellt werden konnten.
und mit "nicht alle" meinte Windows > GAR KEINS :)

Verwende in meinem PW auch Sonderzeichen, könnte es daran liegen???
Ergänzung ()

DeusoftheWired schrieb:
Das erinnert mich an ein ähnliches Problem, das jemand vor einer Weile hatte. Schau dir mal die elegante Lösung von Infi<3 an: https://www.computerbase.de/forum/threads/netzwerk-initialisieren-zu-langsam.1135833/#post-13027210

Danke für den Hinweis, das klingt wirklich ganz gut...:)
bin mir mit der Umsetzung mangels Kenntnisse nicht ganz sicher,
denn schon die bestehenden paar Zeilen hab ich her mühselig zusammen gesucht...

Vestehe das aber so...

Pc soll nach kurzer Wartezeit.....
..... versuchen meine NAS oder FritzBox direkt anzuspechen
....und wenn das Positiv war, ....
....dann die Batch zum verbinden der Netzlaufwerke starten... !?

Richtig?

Klingt wirklich gut, doch wie schreib ich das korrekt...??
 
In meinem Ausbildungbetrieb früher, gab es auch mal Probleme mit Sonderzeichen. Zwar nicht mit allen, aber ein paar Kandidaten waren schon dabei. Deswegen haben wir dann Sonderzeichen für Passwörter gestrichen.

Und bei mir selbst war auch mal der Fall das Windows sagte, die verbinfung zu den Netzlaufwerken konnte nicht hergestellt werden. Allerdings blieben diese dennoch im Explorer und wenn die allgemeine Netzverbindung bestand, konnte ich darauf zugreifen.
 
FutureBase80 schrieb:
das mit der automatischen Anmeldung der Netzlaufwerke über Windows hatte ich anfangs
auch so eingerichtet, aber irgendwie funktionierte das nicht. Gabe jedes mal ne Fehlermeldung
das nicht alle Laufwerke wiederherstellt werden konnten.
und mit "nicht alle" meinte Windows > GAR KEINS :)
Gibt es überhaupt Rechner, wo es dieses Problem nicht gibt? :p

Irgendeiner hatte mal geschrieben, dass es daran liegt, dass Windows die notwendigen Treiber erst nach dem ersten Verbindungsversuch lädt. Vielleicht wäre es hier sinnvoller anzusetzen. Man kann natürlich auch einfach hingehen und versuchen, die Meldung abzustellen. Dann wären alle zufrieden ;)
 
FutureBase80 schrieb:
Hi,
das mit der automatischen Anmeldung der Netzlaufwerke über Windows hatte ich anfangs
auch so eingerichtet, aber irgendwie funktionierte das nicht. Gabe jedes mal ne Fehlermeldung
das nicht alle Laufwerke wiederherstellt werden konnten.
und mit "nicht alle" meinte Windows > GAR KEINS :)

Verwende in meinem PW auch Sonderzeichen, könnte es daran liegen???

Probleme mit Sonderzeichen in Passwörtern gibt es meist nur dann, wenn das erstellende System eine andere Zeichenkodierung nutzt als das ausführende, z. B. im WLAN-Router. Unter Windows selbst sollte das deshalb nicht vorkommen. Um die Möglichkeit auszuschließen, kannst du aber mal abc123 als Passwort probieren.

FutureBase80 schrieb:
Ergänzung ()

Danke für den Hinweis, das klingt wirklich ganz gut...:)
bin mir mit der Umsetzung mangels Kenntnisse nicht ganz sicher,
denn schon die bestehenden paar Zeilen hab ich her mühselig zusammen gesucht...

Vestehe das aber so...

Pc soll nach kurzer Wartezeit.....
..... versuchen meine NAS oder FritzBox direkt anzuspechen
....und wenn das Positiv war, ....
....dann die Batch zum verbinden der Netzlaufwerke starten... !?

Richtig?

Klingt wirklich gut, doch wie schreib ich das korrekt...??

Infi<3s Lösung macht genau das. Es versucht eine IP anzupingen und erst dann, wenn das Erfolg hat, bindet es das Netzlaufwerk ein, das auf dieser IP liegt.
Allerdings ist das ganze nur dafür gedacht, die paar Sekunden beim Windowsstart zu überbrücken, in denen die Netzwerkverbindung noch nicht vollständig aufgebaut ist. In deinem Fall bringt es aber nur dann etwas, wenn sich dein WLAN beim Start wieder etwas Zeit läßt, nicht aber, wenn du unterwegs bist und die Netzlaufwerke selbst x Sekunden nach Start nicht zur Verfügung stehen.

Um das mit dem Auswahlmenü, das du im ersten Beitrag beschrieben hast, umzusetzen, solltest du dich in Menüs bzw. Sprungmarken in Batch einlesen: http://www.michael-puff.de/Programmierung/Artikel/BatchMenue.shtml

Wenn’s nicht klappt, einfach noch mal hier schreiben. ;)
 
Danke, das ist schon mal genau was ich suchte...:)
Funktioniert auch schon ganz anständig, mir fehlt nur nur die eine sache...

Wie kann ich ergänzend noch bewirken, das automatisch Auswahl "1",
sprich... Laufwerke verbinden, nach zeitraum X ausgeführt wird.

Denn dann hätte ich ja alle Probleme gelöst...
- Zum einen läuft es von selbst
- Zum anderen genug zeit für den W-Lan Aufbau
- Und ne Option abzubrechen wenn ich nicht @Home bin.

Aktuell siehts nun so aus:

@echo off
echo NAS-Skript
echo =============
echo.
echo [1] Laufwerke verbinden
echo [2] Vorgang Abbrechen
echo.


set asw=0
set /p asw="Bitte Auswahl eingeben: "


if %asw%==1 goto NAS
if %asw%==2 goto OUT
goto END

:NAS
cls
echo Erst bestehende Verbindungen loesen
net use * /delete /yes
echo Verbinde Netzlaufwerk
echo.
net use F: \\SYN212\Chris /user:admin PW
net use V: \\SYN212\Video /user:admin PW
net use M: \\SYN212\Musik /user:admin PW
echo.
echo Verbindung erfolgreich
goto END

:OUT
goto END

:END
 
Klasse, das sieht doch gut aus. Ersten Schritt gemeistert! :)
Für den runterzählenden Timer mit vordefinierter Auswahl mußt du das Skript aber noch ein Stück anpassen und auf den Befehl choice mit dem Parameter /T zurückgreifen.

Code:
CHOICE [/C Optionen] [/N] [/CS] [/T Zeitlimit /D Auswahl] [/M Text]

Beschreibung:
    Mit diesem Programm können Benutzer ein Element aus einer
    Auswahlliste auswählen und den Index der Auswahl wiedergeben.

Parameterliste:
   /C    Optionen      Bestimmt die zu erstellende Auswahlliste.
                       Standardliste ist "JN".

   /N                  Blendet die Auswahlliste in der Aufforderung aus.
                       Die Meldung vor der Aufforderung wird dennoch
                       angezeigt und die Optionen sind aktiviert.

   /CS                 Aktiviert die Groß-/Kleinschreibungs-
                       unterscheidung. Standardmäßig wird zwischen
                       Groß-/Kleinschreibung nicht unterschieden.

   /T    Zeitlimit     Bestimmt die Pausensekundenanzahl vor der
                       Auswahl. Gültige Wert sind 0 bis 9999.
                       Bei 0 gibt es keine Pause und die
                       Standardauswahl wird verwendet.

   /D    Auswahl       Bestimmt die Standardauswahl nach nnnn Sekunden.
                       Zeichen müssen im Auswahlsatz durch die Option
                       /C und nnnn mit Option /T festgelegt werden.

   /M    Text          Bestimmt die anzuzeigende Meldung vor der
                       Aufforderung. Ohne Angabe wird nur eine
                       Aufforderung angezeigt.

   /?                  Zeigt diese Hilfe an.

   HINWEIS:
   Die Umgebungsvariable ERRORLEVEL wird auf den Index des
   Schlüssels gesetzt, der aus dem Auswahlsatz ausgewählt wurde. Die
   erste Auswahl gibt einen Wert von 1, die zweite einen Wert von 2
   usw. Falls der Benutzer eine unzulässige Taste drückt, wird ein
   akustisches Signal wiedergegeben. Bei einem Fehlerzustand wird
   ein ERRORLEVEL von 255 wiedergegeben. Beim Drücken auf Strg+Untbr
   oder Strg+C wird ein ERRORLEVEL-Wert von 0 wiedergegeben.
   Führen Sie die ERRORLEVEL-Parameter in absteigender Reihenfolge
   auf, falls Sie diese in einem Batchprogramm verwenden.

Beispiele:
   CHOICE /?
   CHOICE /C JNC /M "Drücken Sie J für Ja, N für Nein oder A für Abbrechen."
   CHOICE /T 10 /C jna /CS /D j
   CHOICE /C ab /M "Wählen Sie a für Option 1 und b für Option 2."
   CHOICE /C ab /N /M "Wählen Sie a für Option 1 und b für Option 2."
 
Zuletzt bearbeitet: (Typo)
So, werde nun mal einen Neustart wagen,
doch damit sollte es nun wie gewünscht funktionieren.


@echo Off
echo NAS-Skript
echo =============
echo.
echo.
echo Netzlaufwerk verbindet in 10 Sek !!!
echo.
echo.
@echo off
CHOICE /T 10 /N /C JN /D j /M "Vorgang ABBRECHEN mit Auswahl > N < "

:J
cls
echo Erst bestehende Verbindungen loesen
net use * /delete /yes
echo Verbinde Netzlaufwerk
echo.
net use F: \\SYN212\Chris /user:admin PW
net use V: \\SYN212\Video /user:admin PW
echo.
echo Verbindung erfolgreich
goto END

:N
goto END

:END




NEUSTART Ausprobiert...

das zeit verzögert automatische verbinden klappt...
Das Abbrechen des ganzen Vorgangs aber leider nicht :o(

Hab ich da was übersehen?
 
Zuletzt bearbeitet:
dir fehlt die Abfrage des Errorlevels von Choice:

IF %Errorlevel%==2 Goto :N
 
Danke, das war mein Fehler... nun Läuft es rund :)

Falls noch jemand ähnliches sucht, hier nun das Endergebnis:


@echo Off
echo.
echo NAS-Skript
echo =============
echo.
echo.
echo.
echo Netzlaufwerk verbindet in 10 Sek !!!
echo.
echo - Schnellauswahl mit J -
echo.
echo.
echo.
echo.
echo.
@echo off
CHOICE /T 10 /N /C JNc /D j /M "Vorgang ABBRECHEN mit Auswahl > N < "


IF %Errorlevel%==1 Goto :J
IF %Errorlevel%==2 Goto :N

:J
cls
echo Erst bestehende Verbindungen loesen
net use * /delete /yes
echo Verbinde Netzlaufwerk
echo.
net use F: \\SYN212\Chris /user:Name Password
net use V: \\SYN212\Video /user:Name Password
net use M: \\SYN212\Musik /user:Name Password
echo.
echo Verbindung erfolgreich
goto END

:N
goto END

:END
 
Zurück
Oben