Benutzerprofile verschieben - die bequeme Art
Hallo,
bei uns in der Firma standen wir vor dem Problem die Benutzerprofile auf ein anderes Share zu kopieren. Da dies eine beträchtliche Anzahl (1400) ist und wir auch keine Downtime gebrauchen können (Schichtsystem, Nachtarbeit, usw), kam mir die Idee das zu automatisieren. Das Ganze habe ich mit der Programmiersprache C# geschrieben.
Mein Programm macht folgendes:
1. Prüfen ob Nutzer gerade angemeldet (wird wie bei "net session" abgecheckt, Voraussetzung ist, dass man den Servernamen weiß, zu dem die User eine Session öffnen, wenn diese sich anmelden. Fileserver o.ä.)
2. Liest den Profilpfad aus dem AD
3. Vergleicht diesen mit dem neuen (den man in der GUI angeben kann).
4. Wenn schon umgezogen, ignoriert das Programm den Benutzer.
5. Wenn nicht, wird der Nutzer deaktiviert und ein robocopy Befehl abgesetzt.
6. Während des Kopiervorgangs kann der Nutzer sich nicht versehentlich anmelden und bekommt eine Fehlermeldung.
7. Ist der Vorgang abgeschlossen, wird der neue Pfad ins AD geschrieben und der Nutzer wieder aktiviert.
8. Die nicht kopierten (angemeldeten) Benutzer schiebt er wieder in die Liste oberhalb, damit man das Ganze wiederholen kann ohne neu zu importieren.
Dies erspart uns im Moment eine Menge Arbeit.
Ich denke dies kann der ein oder andere Admin recht gut gebrauchen.
Die Dateien die man importieren kann sollten Zeilenweise
formatiert sein. D.h. am besten eine TXT-Datei und 1 User pro Zeile.
Username = SAM Account Name oder Vor-W2k-Name.
Ich erwähne es trotzdem noch mal, obwohl es jedem klar sein müsste:
Backup ist das A und O. Ich übernehme keine Haftung für Datenverluste!
Man muss auch wissen was man tut. Am besten vorher mit einem Testbenutzer prüfen ob alles so klappt wie gewünscht.
Vorraussetzungen: .NET Framework 4.5, Netzwerkverbindung, Active Directory
Ich empfehle das Programm direkt auf dem Server auszuführen. Kopieren geht dadurch natürlich schneller.
Link zum Tool: https://www.dropbox.com/s/nn0exyaba6cos2r/profilemover.exe
Quellcode: https://www.dropbox.com/s/tzswuki0lsi706n/profilemover_source.zip
PS: Hätte das Programm ja gerne hier hochgeladen, aber sehe keine Möglichkeit dazu. Eventuell kann das ja mal ein Admin prüfen. Thx.
Gruß Trekki
bei uns in der Firma standen wir vor dem Problem die Benutzerprofile auf ein anderes Share zu kopieren. Da dies eine beträchtliche Anzahl (1400) ist und wir auch keine Downtime gebrauchen können (Schichtsystem, Nachtarbeit, usw), kam mir die Idee das zu automatisieren. Das Ganze habe ich mit der Programmiersprache C# geschrieben.
Mein Programm macht folgendes:
1. Prüfen ob Nutzer gerade angemeldet (wird wie bei "net session" abgecheckt, Voraussetzung ist, dass man den Servernamen weiß, zu dem die User eine Session öffnen, wenn diese sich anmelden. Fileserver o.ä.)
2. Liest den Profilpfad aus dem AD
3. Vergleicht diesen mit dem neuen (den man in der GUI angeben kann).
4. Wenn schon umgezogen, ignoriert das Programm den Benutzer.
5. Wenn nicht, wird der Nutzer deaktiviert und ein robocopy Befehl abgesetzt.
6. Während des Kopiervorgangs kann der Nutzer sich nicht versehentlich anmelden und bekommt eine Fehlermeldung.
7. Ist der Vorgang abgeschlossen, wird der neue Pfad ins AD geschrieben und der Nutzer wieder aktiviert.
8. Die nicht kopierten (angemeldeten) Benutzer schiebt er wieder in die Liste oberhalb, damit man das Ganze wiederholen kann ohne neu zu importieren.
Dies erspart uns im Moment eine Menge Arbeit.
Ich denke dies kann der ein oder andere Admin recht gut gebrauchen.
Die Dateien die man importieren kann sollten Zeilenweise
formatiert sein. D.h. am besten eine TXT-Datei und 1 User pro Zeile.
Username = SAM Account Name oder Vor-W2k-Name.
Ich erwähne es trotzdem noch mal, obwohl es jedem klar sein müsste:
Backup ist das A und O. Ich übernehme keine Haftung für Datenverluste!
Man muss auch wissen was man tut. Am besten vorher mit einem Testbenutzer prüfen ob alles so klappt wie gewünscht.
Vorraussetzungen: .NET Framework 4.5, Netzwerkverbindung, Active Directory
Ich empfehle das Programm direkt auf dem Server auszuführen. Kopieren geht dadurch natürlich schneller.
Link zum Tool: https://www.dropbox.com/s/nn0exyaba6cos2r/profilemover.exe
Quellcode: https://www.dropbox.com/s/tzswuki0lsi706n/profilemover_source.zip
PS: Hätte das Programm ja gerne hier hochgeladen, aber sehe keine Möglichkeit dazu. Eventuell kann das ja mal ein Admin prüfen. Thx.
Gruß Trekki
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 233852
Url: https://administrator.de/contentid/233852
Ausgedruckt am: 05.12.2024 um 02:12 Uhr
7 Kommentare
Neuester Kommentar
Moin,
sieht schick aus, ist für mich nur knapp 9 Monate zu spät ;)
Meine Lösung ist etwas rustikaler und ohne GUI. (War bei uns aber auch etwas kurzfristiger) die Idee net Session zu nutzen ist gut, ich habe meines einfach über Nacht laufen lassen. Wobei sich mir bei deinem die Frage stellt, was passiert, wenn ich es mitten am Tag laufen lasse... Ich habe Userprofile von biszu 20GB gehabt, da dauert das Kopieren eine Weile... In deinem Fall kann sich dann der User dauerhaft nicht anmelden. Ist das nicht etwas Userunfreundlich? Du könntest noch eine Zeitprüfung einbauen.
Gruß
Chris
sieht schick aus, ist für mich nur knapp 9 Monate zu spät ;)
Meine Lösung ist etwas rustikaler und ohne GUI. (War bei uns aber auch etwas kurzfristiger) die Idee net Session zu nutzen ist gut, ich habe meines einfach über Nacht laufen lassen. Wobei sich mir bei deinem die Frage stellt, was passiert, wenn ich es mitten am Tag laufen lasse... Ich habe Userprofile von biszu 20GB gehabt, da dauert das Kopieren eine Weile... In deinem Fall kann sich dann der User dauerhaft nicht anmelden. Ist das nicht etwas Userunfreundlich? Du könntest noch eine Zeitprüfung einbauen.
Gruß
Chris