Home Directorys auf anderen Fileserver übersiedeln – Änderungen im AD per Script


sehr verwirrender ArtikelNaja, ganz OKbrauchbar für Checker...guter Artikelsehr guter Artikel - Danke [1 Bewertung, Durchschnitt: 3,00]

Script zur Automatisierung des Eintrags von Homedrives bei Active Directory Usern

(z. B. im Falle einer Fileserver-Migration, einer Änderung des Laufwerksbuchstabens, Umstieg auf DFS  o. ä.)
  1. Share auf neuen Ordner einrichten
  2. Kopie der Daten mit
    (das Folgende ist als Vorschlag zu betrachten – bitte selbst die Flags prüfen…)
    xcopy quelle ziel /Y /O /H /F /I /C /S
  3. oder
    Ordner mit Total-Commander auf den neuen Server kopieren (ACHTUNG: muss mit einem Benutzer [Domänen-Admin?] gemacht werden, der auch Leserechte auf den Ordnern besitzt
    (Kontrolle: Sicherheitseinstellungen auf den Homeshares der Benutzer…) 

    WICHTIG WICHTIG WICHTIG:
    Das Hakerl muss bei “NTFS-Berechtigungen kopieren” gesetzt sein!!!!!
  4. Folgendes Script “HomeDirecotryChanger.vbs” über die Einträge im Active Directory laufen lassen, damit die User beim nächsten Login auch die richtigen Ordner gemappt bekommen…
    [ Script ist ein Sammelsurium aus Eigenem und Fremdem  - die "Ablage" hier dient lediglich dazu, dass ich es nicht selbst immer suchen muss, wenn ichs wieder brauche...]
    btw: man könnte das auch mit der Powershell erledigen…
  5. Es gibt im Ordner ein schönes Logfile, mit dessen Hilfe man überprüfen kann, ob es bei manchen Usern Troubles gab (weil er zB bisher gar kein Homedrive eingetragen hatte oder ähnliches!)
'###########################################################################
'# Usage:
'#  als    homedirectorychanger.vbs      an beliebiger Stelle auf einem Client speichern
'#
'# Variablen, die geändert werden MÜSSEN
'# ACHTUNG: strOU ist in 'verkehrter' Reihenfolge, dh:
'# strOU = "OU=1A,OU=Schueler,OU=benutzer," steht für alle User,
'# die in der OU=TEST sind, die wiederum in der OU= Benutzer liegt
'# Hier findest Du zusätzliche Infos zu LDAP-Attributen:
'# http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm

strOU = "OU=benutzer,"   'ACHTUNG auf den Beistrich!!
OldServer = "hp-y"
MyNewServer = "idefix"
HomeDriveKey = "H:"

'# Ab hier nur mehr für Auskenner veränderbar...
'############################################################################
on error resume next
Dim rootDSE, domainObject
Set rootDSE = GetObject("LDAP://RootDSE")
domainContainer = rootDSE.Get("defaultNamingContext")
Set domainObject = GetObject("LDAP://" & strOU & domainContainer)

Set fs = CreateObject ("Scripting.FileSystemObject")
Set outFile = fs.CreateTextFile (".\logfile_ADKonten.txt")

exportUsers(domainObject)

Set oDomain = Nothing

Sub ExportUsers(oObject)
on error resume next
   Dim oUser
   For Each oUser in oObject
      Select Case oUser.Class
         Case "user"

			call changeHomeDirectory(oUser.distinguishedName, oUser.homeDirectory)

         Case "organizationalUnit" , "container"

			ExportUsers(oUser)
      End select
   Next
End Sub

sub changeHomeDirectory(myUser, myHomeDirectory)

On Error Resume Next
Err.Clear

	Set objUser = GetObject("LDAP://"& myUser)
	myNEWHomeDirectory = replace(myHomeDirectory, OldServer, MyNewServer, 1, -1, 1)
	wscript.sleep 10
	objUser.Put "homeDirectory", myNEWHomeDirectory
	wscript.sleep 10
	objUser.Put "homeDrive", HomeDriveKey
	wscript.sleep 10
	objUser.SetInfo
	wscript.sleep 20

	outfile.WriteLine  "Set objUser = GetObject(""LDAP://"& myUser &"," & strOU & domainContainer & CHR(34) & ")"
	outfile.WriteLine  "objUser.Put ""homeDirectory"", " & CHR(34) & myNEWHomeDirectory & CHR(34)
	outfile.WriteLine  "objUser.Put ""homeDrive"", " & CHR(34) & HomeDriveKey & CHR(34)
	if  Err.Number <> 0  then
       outfile.WriteLine   "Fehler: Error number: " & Err.Number & "    Error description: " & Err.Description
	end if

	outfile.WriteLine "_____"

end Sub
WScript.Quit
wscript.echo "Done"

This entry was posted in Active Directory, Scripts, VBScript. Bookmark the permalink.

Hinterlasse eine Antwort