Benutzernamen umbenennen
Hallo,
ich muss auf einem Windows 2008 DC, ca. 250 Benutzernamen umstellen.
In der Domäne vom 2008er sind noch zwei TS und ein 2003 Server eingebunden.
Es müssen nach der Umstellung alle Programme, Daten bzw. Profile vorhanden sein.
Kann ich die Benutzernamen automatisch umbenennen?
Nach Möglichkeit sollten, auch die Pfad auf dem TS (c:\useres\benutzername) angepasst
werden und verhindert werden, dass der 2008er ein temporäres Benutzerprofil danach anlegt.
Die Profile von Servergespeicherte, kann ich Notfalls auch selbst anpassen, aber wenn
das auch automatisch geht, wäre mir sehr geholfen.
ich muss auf einem Windows 2008 DC, ca. 250 Benutzernamen umstellen.
In der Domäne vom 2008er sind noch zwei TS und ein 2003 Server eingebunden.
Es müssen nach der Umstellung alle Programme, Daten bzw. Profile vorhanden sein.
Kann ich die Benutzernamen automatisch umbenennen?
Nach Möglichkeit sollten, auch die Pfad auf dem TS (c:\useres\benutzername) angepasst
werden und verhindert werden, dass der 2008er ein temporäres Benutzerprofil danach anlegt.
Die Profile von Servergespeicherte, kann ich Notfalls auch selbst anpassen, aber wenn
das auch automatisch geht, wäre mir sehr geholfen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193215
Url: https://administrator.de/contentid/193215
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
2 Kommentare
Neuester Kommentar
Also das massenweise umbenennen geht so:
(LDAP Pfad muss natürlich an deine Umgebung angepasste werden)
Natürlich musst du noch die neuen Namen einbauen, entweder über ein Array das z.B. aus einer Textdatei mit den Umbenennungsdaten gefüttert wird.
Die Schleife itteriert über alle Benutzer in der angegebene OU die nicht deaktiviert sind.
Dann musst du noch die Ordner mit den Benutzerprofilen umbenennen. Kannst du auch mit einer Schleife in VBS erledigen.
um das ganze mal in code zu fassen hier ein Entwurf mit dem du arbeiten kannst:
(LDAP Pfad muss natürlich an deine Umgebung angepasste werden)
Natürlich musst du noch die neuen Namen einbauen, entweder über ein Array das z.B. aus einer Textdatei mit den Umbenennungsdaten gefüttert wird.
Die Schleife itteriert über alle Benutzer in der angegebene OU die nicht deaktiviert sind.
set objUsers = GetObject("LDAP://ou=SBSUsers,ou=Users,ou=MyBusiness,dc=sbs2003,dc=local")
for each objuser in objUsers
if objuser.AccountDisabled = FALSE then
'Aktueller Logon-Name
currentname = objuser.sAMAccountName
'Anzeigename
displayname = objUser.displayName
'Logon Username setzen
objUser.Put "sAMAccountName","[HIER DER NEUE NAME DES USERS]"
'Profilpfad setzen
objUser.Put "profilePath","[\\SERVER\PFAD ZUM NEUEN PROFIL]"
objUser.setinfo
End If
next
Dann musst du noch die Ordner mit den Benutzerprofilen umbenennen. Kannst du auch mit einer Schleife in VBS erledigen.
um das ganze mal in code zu fassen hier ein Entwurf mit dem du arbeiten kannst:
'VARIABLEN
PFADUSERNAMESTXT = "c:\Users\benutzer\Desktop\usernames.txt"
LDAPPFADUSERS = "LDAP://ou=SBSUsers,ou=Users,ou=MyBusiness,dc=sbs2003,dc=local"
SERVERUSERPROFILEPATH = "\\SERVER\Users\"
SERVERUSERPROFILEPATHLOCAL = "C:\Users"
'Lese die neuen Usernamen in ein Assoziatives Array aus einer Textdatei in der diese in folgendem Format abgelegt sind:
' oldusername=newusername
'---------------------------
Set dict = CreateObject("Scripting.Dictionary")
Set objFS = CreateObject("Scripting.FilesystemObject")
Set newnamesfile = objFS.OpenTextFile(PFADUSERNAMESTXT)
Do While newnamesfile.AtEndOfStream <> True
line = newnamesfile.ReadLine()
marray = Split(line,"=",-1,1)
oldname = marray(0)
newname = marray(1)
dict.Add oldname, newname
Loop
'--------------------
'Benenne die Benutzer um und setze den Profilpfad
'------------------------------------------------
set objUsers = GetObject(LDAPPFADUSERS)
for each objuser in objUsers
if objuser.AccountDisabled = FALSE Then
'Aktueller Logon-Name
currentname = objuser.sAMAccountName
'Anzeigename
displayname = objUser.displayName
'Logon Username setzen
If dict.Exists(currentname) Then
objUser.Put "sAMAccountName", dict(currentname)
'Profilpfad setzen
objUser.Put "profilePath",SERVERUSERPROFILEPATH & dict(currentname)
objUser.setinfo
End If
End If
Next
'--------------------------------------
'Benenne die Profilordner um
'---------------------------
Set folderProfiles = objFS.GetFolder(SERVERUSERPROFILEPATHLOCAL)
For Each folder In folderProfiles.SubFolders
If dict.Exists(folder) Then
folder.Name = dict(folder)
End If
Next