Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Netzlaufwerke im Logonscript trennen und anderes LW verbinden

Mitglied: Rohabu

Rohabu (Level 1) - Jetzt verbinden

02.09.2009, aktualisiert 18.10.2012, 6193 Aufrufe, 14 Kommentare, 1 Danke

Hallo zusammen,

da dies mein erster Beitrag ist stelle ich mich mal kurz vor: Ich bin Rolf, 31 Jahre aus Hamburg und arbeite in einem Mittelständischen Unternehmen im Support, wobei wir auch öfters administrative Aufgaben übertragen bekommen.

Mein Problem ist folgendes:

Aufgrund von Umstrukturierungen werden bei uns Fileserver und darauf liegende Shares umbenannt.

Ist: \\ serverA \ shareA
Soll: \\ serverB \ shareB

Die Inhalte der Shares werden dabei 1:1 übernommen.

Da wir auf den Shares z.T. Vorlagen liegen haben (und z.B. Word über den LW-Buchstaben auf die Vorlagen zugreift) möchte ich folgendes per (Anmelde-)Skript lösen.

Vor der Umstellung:
- Beim ausführen des Skriptes soll ausgelesen werden welches Netzlaufwerk auf welchen Buchstaben verbunden ist, diese Information muss irgendwie festgehalten werden

Nach der Umstellung
- Beim ausführen des Skriptes soll die festgehaltene Information mit einer Übersetzungstabelle (?) abgeglichen werden und das korrespondierende, neue Netzlaufwerk auf den selben Buchstaben verbunden werden wie das alte vorher

Ich hoffe das ist nicht zu kompliziert beschrieben, ich versuche mal eine Kurzversion:

Anmeldung vor Umstellung -> Netz-LW's + LW-Buchstaben merken -> Shares umbenennen -> Anmeldung nach Umstellung -> Skript shaut nach User hatte auf F:\ das LW \\ServerA\ShareA also verbinde ich auf F:\ \\ServerB\ShareB

Folgendes Skript habe ich hier im Forum gefunden um gleich gebliebene Netzlaufwerke auf den selben Buchstaben wie vor der Trennung zu verbinden und ich denke es bietet eine gute Grundlage:

01.
@echo off 
02.
 
03.
for /f "tokens=2,3 delims= " %%i in ('net use') do ( 
04.
net use %%i /delete  
05.
net use %%i "%%j%"  
06.
)
Für jeden Tip, Link, Hilfe und Information bin ich schon jetzt sehr dankbar!

Viele Grüße
Rolf
Mitglied: bastla
02.09.2009 um 12:55 Uhr
Hallo Rohabu und willkommen im Forum!

Das Zwischenspeichern der aktuellen Zuordnung (mit der Filterung nach ":" werden nur Mappings auf Laufwerksbuchstaben erfasst), könntest Du als Batch so machen:
01.
@echo off & setlocal 
02.
for /f "tokens=2,3" %%i in ('net use^|findstr ":"') do >>"\\Server\Share$\%username%-Mapping.txt" echo %%i=%%j
Damit wird am Server (entsprechende Rechte für den User vorausgesetzt) für jeden User eine Textdatei mit seinen aktuellen Einstellungen hinterlegt (alternativ könnte hier auch ein Speicherort im Profil des Users verwendet werden - die "Sammelvariante" hätte aber vielleicht den Vorteil, dass Du Dir einen Überblick über die Mappings aller User verschaffen kannst).

Zum Wiederherstellen brauchst Du dann eine Zuordnungstabelle (im Beispiel unten "\\Server\Share$\Zuordnungstabelle.txt") mit je einer Zuordnung pro Zeile:
\\ServerA\ShareA=\\ServerB\ShareB
Der Batch zum Umstellen könnte dann so aussehen:
01.
@echo off & setlocal 
02.
if not exist "\\Server\Share$\%username%-Mapping.txt" goto :eof 
03.
net use * /d /y>nul 
04.
for /f "usebackq tokens=1,2 delims==" %%i in ("\\Server\Share$\%username%-Mapping.txt") do set "Old=%%j" & call :ProcessMapping %%i 
05.
del "\\Server\Share$\%username%-Mapping.txt" 
06.
goto :eof 
07.
 
08.
:ProcessMapping 
09.
for /f "tokens=1,2 delims==" %%a in ('findstr /i /b "%Old:\=\\%=" "\\Server\Share$\Zuordnungstabelle.txt"') do net use %1 %%b 
10.
goto :eof

Allerdings böte sich bei diesem Anlass vielleicht auch eine Gelegenheit, auf dynamisches Mapping (per Logon-Script mit /p:no) umzustellen - damit könnten dann auch gleich Laufwerksbuchstaben zB innerhalb einer Abteilung vereinheitlicht werden ...

Grüße
bastla

[Edit] ">" im Auslesebatch nachgetragen [/Edit]
Bitte warten ..
Mitglied: Rohabu
02.09.2009 um 14:25 Uhr
Hallo bastla!

Erstmal herzlichen Dank für deine Willkommensgrüße und deine ausführliche Antwort.

Beim Skript zum auslesen der bestehenden Netzlaufwerke habe ich noch ein Problem.
Das Skript schreibt mir nur das vom Laufwerksbuchstaben her gesehen letzte Laufwerk in die xyz-mappings.txt, alle weitreren verbundenen Netzlaufwerke werden ignoriert.

Muss ich das Skript evtl. mit einer Schleife laufen lassen?
Bitte warten ..
Mitglied: bastla
02.09.2009, aktualisiert 18.10.2012
Hallo Rohabu!

Da fehlte noch ein ">" - ist jetzt oben nachgetragen.

Vermutlich wirst Du diesen Batch über einige Tage als Logon-Script laufen lassen, um alle User zu "erwischen" - in diesem Fall wäre es sinnvoll, eine ev schon bestehende Datei jeweils neu erstellen zu lassen, damit Du den "Letztstand" vorfindest - dann brauchst Du aber vorweg noch ein "greypetersches" (manchmal mag man(n)'s minimalistisch )
del "\\Server\Share$\%username%-Mapping.txt" 2>nul
Grüße
bastla
Bitte warten ..
Mitglied: Rohabu
03.09.2009 um 12:17 Uhr
Hallo bastla,

Vielen Dank für deine erneute Antwort!

Das erstellen der Datei mit den bisherigen Zuordnungen klappt jetzt perfekt!

Ich habe noch ein Problem beim herstellen der neuen Mappings. Die alten Mappings werden gelöscht und die Datei für die Mappings wird gelöscht, es werden allerdings keine neuen Mappings erstellt.

Meine erste Vermutung war das das Skript aus irgendeinem Grund nicht in die "ProcessMapping" Prozedur springt, ich habe in dieser Prozedur aber mal ein:

01.
ECHO ProcessMapping betreten 
02.
PAUSE
eingefügt und dies wird beim ausführen des Skriptes auch angesprungen.

Hast du hier AdHoc nocch eine Idee was ich weiter prüfen kann?

Meine Umsetzungstabelle sieht schematisch wie folgt aus

\\Server\Share \\ServerNeu\ShareNeu
Bitte warten ..
Mitglied: 81825
03.09.2009 um 12:31 Uhr
Hi,

Meine Umsetzungstabelle sieht schematisch wie folgt aus
\\Server\Share \\ServerNeu\ShareNeu

bastla hatte dir aber
Zum Wiederherstellen brauchst Du dann eine Zuordnungstabelle (im Beispiel unten "\\Server\Share$\Zuordnungstabelle.txt") mit je einer Zuordnung pro Zeile:
\\ServerA\ShareA=\\ServerB\ShareB

geraten und sein Script auch entsprechend aufgebaut.

Wenn du wissen möchtest, was übersetzt wird und warum offenbar Fehler auftreten, kannst du einfach die Zeilen 8-10 ersetzen durch
01.
:ProcessMapping 
02.
@echo on 
03.
for /f "tokens=1,2 delims==" %%a in ('findstr /i /b "%Old:\=\\%=" "\\Server\Share$\Zuordnungstabelle.txt"') do net use %1 %%b 
04.
pause 
05.
@echo off 
06.
goto :eof
ersetzen.
Bitte warten ..
Mitglied: Rohabu
03.09.2009 um 13:15 Uhr
Hallo greypeter,

Vielen Dank für den Hinweis, ich hatte die Gleichheitszeichen tatsächlich vergessen, habe Sie aber jetzt nachgetragen und am Verhalten des Skriptes ändert sich leider nichts, der Sprung in die Prozedur "ProcessMapping" findet nach wie vor statt, es wird aber nichts verbunden.

Kann man sich aus dem Skript evtl. auftretende Fehlermeldungen ausspucken lassen oder sinnvolle Haltepunkte setzen?

//Edit: Ich probiere es mal mit der von dir vorgeschalgenen Aktivierung der Ausgaben über ECHO ON, Danke!
Bitte warten ..
Mitglied: Rohabu
03.09.2009 um 16:40 Uhr
So, das Problem habe ich gelöst.

Es lag an einem Fehler beim net use Kommando (Fehler 59: Ein an das System angeschlossenes Gerät ist nicht bereit), ich habe jetzt ein:

ping localhost -n 2 > NUL

als erstes Kommando im ProcessMapping Code eingefügt, damit funktioniert es. Dafür schonmal 1000 Dank!!!

Eine Zusatzfrage habe icch aber noch: Lässt sich das Skript auch so gestalten das nicht alle Netzlaufwerke getrennt werden, sondern nur diejenigen welche auch durch ein neues ersetzt werden?
Bitte warten ..
Mitglied: bastla
03.09.2009 um 18:22 Uhr
Hallo Rohabu!

Lässt sich:
01.
@echo off & setlocal 
02.
if not exist "\\Server\Share$\%username%-Mapping.txt" goto :eof 
03.
for /f "usebackq tokens=1,2 delims==" %%i in ("\\Server\Share$\%username%-Mapping.txt") do set "Old=%%j" & call :ProcessMapping %%i 
04.
del "\\Server\Share$\%username%-Mapping.txt" 
05.
goto :eof 
06.
 
07.
:ProcessMapping 
08.
for /f "tokens=1,2 delims==" %%a in ('findstr /i /b "%Old:\=\\%=" "\\Server\Share$\Zuordnungstabelle.txt"') do ( 
09.
    net use %1 /d /y>nul 
10.
    net use %1 %%b 
11.
12.
goto :eof
Nur aus reiner Neugier: Wozu diese Einschränkung?

Grüße
bastla
Bitte warten ..
Mitglied: Rohabu
04.09.2009 um 08:32 Uhr
Guten Morgen bastla!

Echt Klasse vielen Dank!

Die Einschränkung ist dafür gut das Leute die Laufwerke verbunden haben die nicht umbenannt werden, sich diese nicht neu verbinden müssen.

Vielen Dank & Viele Grüße
Rohabu
Bitte warten ..
Mitglied: bastla
04.09.2009 um 15:17 Uhr
Hallo Rohabu!

Stimmt - Du hattest ja nicht geschrieben dass alleFileserver und darauf liegende Shares umbenannt würden - insofern war meine Frage eher wenig sinnvoll ...

Grüße
bastla
Bitte warten ..
Mitglied: 81825
04.09.2009 um 15:33 Uhr
<OT>
Hallo, bastla,
aber zumindest habt ihr mal darüber gesprochen, das ist doch auch was.

Grüße
greypeter
</OT>
Bitte warten ..
Mitglied: Rohabu
18.09.2009 um 15:25 Uhr
Hallo nochmal zusammen,

sorry wenn ich das Thema nochmal ausgrabe, aber meine Frage bezieht sich direkt auf diese genial funktionierende Lösung

Ich würde gern ein Logging mit in das Skript einbauen welches mir für jeden User auf einem Share eine Datei ablegt in der drin steht welches Laufwerk auf welchen Buchstaben neu verbunden wurde.

Der entsprechende Code müsste ja sicher in der Routine :ProcessMapping stehen, ich habe es an der Stelle probiert wo es unten steht, meine Frage ist nur - welche Variablen für LW-Buchstabe und UNC Pfad des neuverbundenen Laufwerks benutzen?

Ich habe es mit z.B.

01.
  
02.
echo > \\Share\Server\%username%_mappings.txt Auf dem Buchstaben %1 befindet sich jetzt das Laufwerk %%b


probiert, dies schreibt aber tatsächlich die Variablennamen und nicht die Werte in die Textdatei.

01.
  
02.
 :ProcessMapping 
03.
 for /f "tokens=1,2 delims==" %%a in ('findstr /i /b 
04.
 "%Old:\=\\%=" 
05.
 "\\Server\Share$\Zuordnungstabelle.txt"') do ( 
06.
     net use %1 /d /y>nul 
07.
     net use %1 %%b 
08.
     echo > \\Share\Server\%username%_mappings.txt [Hier weiß ich nicht weiter] 
09.
10.
 goto :eof 
11.
 
Hat diesbezüglich vieleicht noch jemand einen Tip für mich?

Ich wünsche schonmal allseits ein schönes Wochenende!

Gruß
Rohabu
Bitte warten ..
Mitglied: bastla
18.09.2009 um 15:38 Uhr
Hallo Rohabu!

Versuch es mit der folgenden Zeile:
>>\\Share\Server\%username%_mappings.txt echo %1 %%b
Grüße
bastla
Bitte warten ..
Mitglied: Rohabu
18.09.2009 um 15:52 Uhr
Hallo bastla,

wieder einmal vielen Dank für die schnelle Antwort!

Funktioniert perfekt!

Schönes Wochenende!
Bitte warten ..
Ähnliche Inhalte
Microsoft

Netzlaufwerke trennen sich nach bestimmter Zeit und verbinden sich automatisch wieder

gelöst Frage von itsa99Microsoft5 Kommentare

Hallo Leute, wir haben bei unserer Umgebung mit Win 8.1 und Server 2012R2 das Problem, dass sich die Netzlaufwerke ...

Windows Server

Netzlaufwerke verbinden sich nicht

Frage von MyBRis4ShotWindows Server6 Kommentare

Hallo, wie der Titel schon sagt, habe ich aktuell Probleme mit dem automatischen Verbinden von Netzlaufwerken. Der Kunde arbeitet ...

Windows Netzwerk

Ungenutzte Netzlaufwerke per GPO trennen?

gelöst Frage von LethorqtWindows Netzwerk7 Kommentare

Hallo, ich hab eine Simple frage: Wenn ein Nutzer mehrere Netzlaufwerke hat, die sich zum beispiel durch verschieben in ...

SAN, NAS, DAS

ISCSI trennen und wieder verbinden per Batch

Frage von schrodtiSAN, NAS, DAS1 Kommentar

Hallo Zusammen, gibt es eine Möglichkeit ein gemapptes iSCSI Target, welches über den MS iSCSI Initiator eingebunden ist, per ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 21 StundenWindows 104 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...