Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch File Serverprofil umziehen

Frage Entwicklung Batch & Shell

Mitglied: Hugi1987

Hugi1987 (Level 1) - Jetzt verbinden

02.10.2009 um 22:47 Uhr, 4909 Aufrufe, 7 Kommentare

Hallo zusammen,

ich möchte demnächst Userhomelaufwerke Stück für Stück per Batch auf einen anderen Server umziehen.
Dabei soll dies in 3 Schritten erfolgen:
1.Schritt: Prüfung ob Profil-Dateien in Verwendung hat (mit net file)
2.Schritt: Umziehen der Daten von Server A nach Server B (mit robocopy)
3.Schritt: alte Freigabe entfernen (mit net share)
Dazu habe ich folgende Batch bisher vorbereitet...

echo es wird geprueft ob Benutzer noch angemeldet ist...
net file | findstr BENUTZER

if keine Datei mehr in Verwendung goto Kopieren -->hier happerts noch
else goto Abbruch -->hier auch

:Kopieren
echo Benutzerprofil wird nun kopiert...
robocopy c:\ServerA c:\ServerB /mir /R:5 /W:5

goto Freigabe

:Freigabe
echo Freigabe wird nun entfernt...
net share Freigabe$ /delete

goto Ende

:Abbruch
echo Abbruch, da Benutzer noch angemeldet ist!
(exit)

:Ende
echo Profil erfolgreich kopiert!
------------------------------------------------------------------------------------------------------------#

Könnt ihr mir hier helfen?Mit Batch-Files bin ich noch nicht so vertraut :-P
Mit freundlichen Grüßen Daniel
Mitglied: bastla
02.10.2009 um 23:11 Uhr
Hallo Hugi1987!

Sollte sich so machen lassen:
net file|findstr BENUTZER && goto :Abbruch
Das "else" kannst Du einsparen, da ja ohnehin gleich ":Kopieren" folgt ...

Grüße
bastla
Bitte warten ..
Mitglied: Hugi1987
02.10.2009 um 23:49 Uhr
Danke bastla

Kannst du mir auch eine Möglichkeit geben, wie man mehrere Benutzerlaufwerke mit dieser Batch ausführen kann?
Ich denke da an eine txt-Datei in der einige Benutzer stehen (Benutzer1,Benutzer2,Benutzer3).
Hast du da eine Idee?
Danke schon mal

Gruß Hugi
Bitte warten ..
Mitglied: bastla
03.10.2009 um 00:00 Uhr
Hallo Hugi1987!

Etwa so (ungetestet):
01.
@echo off & setlocal 
02.
set "Liste=D:\Benutzer.txt" 
03.
 
04.
for /f "usebackq delims=" %%i in ("%Liste%") do set "Benutzer=%%i" & call :ProcessUser 
05.
echo Fertig. 
06.
goto :eof 
07.
 
08.
:ProcessUser 
09.
echo es wird geprueft ob Benutzer noch angemeldet ist... 
10.
net file|findstr "%Benutzer%" && (echo Abbruch, da Benutzer noch angemeldet ist! & goto :eof) 
11.
 
12.
:Kopieren 
13.
echo Benutzerprofil wird nun kopiert... 
14.
robocopy \\ServerA\c$\%Benutzer% \\ServerB\c$\%Benutzer% /mir /R:5 /W:5 
15.
 
16.
:Freigabe 
17.
echo Freigabe wird nun entfernt... 
18.
net share Freigabe$ /delete 
19.
 
20.
:Ende 
21.
echo Profil erfolgreich kopiert! 
22.
goto :eof
In der Textdatei muss je Zeile ein Benutzer eingetragen sein.

Das Entfernen der Freigabe ist mir nicht ganz klar - hab's daher mal so gelassen, wie Du es vorher angeführt hattest ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
03.10.2009 um 00:42 Uhr
Servus,

als alter Serverumzieher rate ich dir - mach es nicht so.

Einen neuen Server "probiert" man erstmal aus.

Wenn der läuft - nimmt man sich ein Wochenende, kopiert nicht nur die Userdaten - sondern auch die Zugriffsberechtigungen.

Dann verstellt man in der AD das Userhome / Profilpfad.
Admodify.net

Grundsätzlich sollten Userprofile "irgendwo" auf einem Server liegen - aber garantiert nicht auf dem c:\! ...
(Auch wenn man Kontigente benutzt) - dann "klappt" das auch ohne Robocopy mit einem Image (das kein Backup ist/ersetzt) - aber für den Fall eindeutig die bessere Wahl ist.

Gruß

@ Bastla: Die Idee mit den Usern und einer Datei ist gut
nicht @bastla (der weiß das eh)
Mittels eines Findstr /v am ende könnte man auch den umgezogenen User aus der Liste der delinquenten löschen.

Aber wie bereits an anderer Stelle geschrieben - ich bin Pessimist - oder andersherum Optimist mit Lebenserfahrung
Bitte warten ..
Mitglied: Hugi1987
05.10.2009 um 09:18 Uhr
Zitat von bastla:
Hallo Hugi1987!

Etwa so (ungetestet):
01.
@echo off & setlocal 
02.
> set "Liste=D:\Benutzer.txt" 
03.
>  
04.
> for /f "usebackq delims=" %%i in ("%Liste%") do 
05.
> set "Benutzer=%%i" & call :ProcessUser 
06.
> echo Fertig. 
07.
> goto :eof 
08.
>  
09.
> :ProcessUser 
10.
> echo es wird geprueft ob Benutzer noch angemeldet ist... 
11.
> net file|findstr "%Benutzer%" && (echo Abbruch, da 
12.
> Benutzer noch angemeldet ist! & goto :eof) 
13.
>  
14.
> :Kopieren 
15.
> echo Benutzerprofil wird nun kopiert... 
16.
> robocopy \\ServerA\c$\%Benutzer% \\ServerB\c$\%Benutzer% /mir /R:5 
17.
> /W:5 
18.
>  
19.
> :Freigabe 
20.
> echo Freigabe wird nun entfernt... 
21.
> net share Freigabe$ /delete 
22.
>  
23.
> :Ende 
24.
> echo Profil erfolgreich kopiert! 
25.
> goto :eof 
26.
> 
In der Textdatei muss je Zeile ein Benutzer eingetragen sein.

Das Entfernen der Freigabe ist mir nicht ganz klar - hab's daher
mal so gelassen, wie Du es vorher angeführt hattest ...

Grüße
bastla

Hey,
erstmal danke euch beiden für die Info...
leider funktioniert die Prüfung ob der Benutzer angemeldet ist nicht. Der Script läuft einfach weiter an dieser Stelle weiter.
Hast du eine Idee?

Gruß hugi1987
Bitte warten ..
Mitglied: Hugi1987
05.10.2009 um 10:10 Uhr
Hey,
erstmal danke euch beiden für die Info...
leider funktioniert die Prüfung ob der Benutzer angemeldet ist nicht.

:ProcessUser
echo es wird geprueft ob Benutzer noch angemeldet ist...
net file|findstr "%Benutzer%" && (echo Abbruch, da
Benutzer noch angemeldet ist! & goto :eof)

Der Script läuft einfach weiter an dieser Stelle weiter.
Hast ihr eine Idee?

Gruß hugi1987
Bitte warten ..
Mitglied: 60730
05.10.2009 um 10:19 Uhr
Servus,

wenn du es nicht so machst, sondern so wie ich es (schon öfters gemacht habe) - dann brauchst du das mit der Abfrage nicht.

Die Zeit, die du mit meinem Weg (den ich mir bestimmt nicht allein ausgedacht habe) - sparst + die Probleme, die man mit dem Weg nicht hat - da wärst du heute schon fertig

Nächstes Wochenende kommt ja noch

Bedenke alleine meine Zeile mit dem erneuten Findstr, dass unbedingt nötig ist

  • wenn die Daten kopiert nicht verschoben
  • wenn es einen "gewollten" Abbruch" (weil User angemeldet ist) gibt.

Dein Weg - den Bastla dir geebnet hat - ist Murks!!


btw: nur für den Fall der Fälle - im Findstr würde ein /i fehlen - denn die User melden sich seltenst genau so an, wie Sie in einer Liste stehen ;.-)
Vorname.Nachname

Gruß
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
"Generic" Drucker mit batch - File erstellen (6)

Frage von MrPreesident zum Thema Batch & Shell ...

Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst ( Batch ) Open File or Folder Dialog (5)

Frage von clragon zum Thema Batch & Shell ...

Windows 10
Batch: Copy file.txt Lokaler Drucker (1)

Frage von fluluk zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...