zg1496118
Goto Top

Remotedektopdienste Profil im Active Directory per Batch setzen

Hallo zusammen,

ich stehe vor dem Problem, dass immer wiederer mehrer Benutzer im AD angelegt werden müssen. Einen Großteil kann ich über den csv-Import machen.
Da allerdings Terminalserver eingesetzt werden (momentam 2008 R2) würde ich gerne das Setzen des Remotedesktopdienste-Benutzerprofils und des Remotedesktopdienste-Basisordner ebenfalls gerne per Sktipt machen.
Leider habe ich im Netz bisher noch nicht wirklich etwas gefunden was mir weiterhilft. Ab und zu habe ich Snippets gefunden bzgl. VBS und ADSI, aber ehrlich gesagt steig ich da nicht durch.

Hat von Euch eventuell jemand eine Idee oder ein fertiges Skript mit dem man beide Sachen setzen kann?

Danke für Eure Hilfe!

Rüdiger

Content-ID: 208672

Url: https://administrator.de/forum/remotedektopdienste-profil-im-active-directory-per-batch-setzen-208672.html

Ausgedruckt am: 26.12.2024 um 17:12 Uhr

Patriot
Patriot 26.06.2013 um 10:58:47 Uhr
Goto Top
Hallo Rüdiger,

ein fertiges Script habe ich nicht, aber ich denke ich kann dir helfen
Stichwort Powershell ! face-smile

new-aduser
zg1496118
zg1496118 26.06.2013 um 11:27:36 Uhr
Goto Top
Mit der Powershell lege ich die Benutzer sowie so an und weise Gruppen zu etc. Aber was wird dort für die RDS-Einstellungen benötigt? Habe ich das tatsächlich übersehen?
colinardo
Lösung colinardo 26.06.2013, aktualisiert am 25.06.2014 um 13:33:36 Uhr
Goto Top
Hallo Rüdiger,
Aber was wird dort für die RDS-Einstellungen benötigt? Habe ich das tatsächlich übersehen?
da die Felder für die TerminalServer Eigenschaften in einem binären Blob gespeichert werden, muss eine spezielle Funktion des AD-User-Objekts aufgerufen werden um diese Einstellungen zu setzen
$deinUserObject.InvokeSet('TerminalServicesHomeDirectory',"C:\Pfad")
$deinUserObject.InvokeSet('TerminalServicesProfilePath',"C:\Pfad")
Die verfügbaren Eigenschaften für die Terminal-Services kannst du hier nachlesen.

um nachträglich den Pfad für existierende User zu ändern kannst du folgenden Powershell-Code nehmen:
(Zeile 1 ist an deine Gegebenheiten anzupassen und in Zeile 10 und 11 noch die Pfade anpassen )
$OU = "ou=DEINEORG,dc=DOMAIN,dc=LOCAL"  
$objSearch = New-Object System.DirectoryServices.DirectorySearcher 
$objSearch.PageSize = 15000 
$objSearch.Filter = "(&(objectCategory=User)(objectCategory=Person))"   
$objSearch.SearchRoot = "LDAP://$OU"   
$allUsers = $objSearch.FindAll() 
foreach ($user in $allUsers) { 
	$o = $user.GetDirectoryEntry()
        $logonname = $o.sAMAccountName
	$o.InvokeSet('TerminalServicesHomeDirectory',"z:\profiles\$logonname\home")  
	$o.InvokeSet('TerminalServicesProfilePath',"z:\profiles\$logonname")  
	$o.CommitChanges()
}
Eigenschaften des Users wie z.B. den sAMAccountName kannst du in der Schleife für jeden User wie folgt abrufen:
$o.sAMAccountName
Um z.B. diesen in den Pfad mit einzubauen...

Grüße Uwe
zg1496118
zg1496118 26.06.2013 um 13:35:26 Uhr
Goto Top
Funktioniert perfekt!!!!

Vielen Dank face-smile

Gruß, Rüdiger
colinardo
colinardo 26.06.2013 um 14:07:41 Uhr
Goto Top
Gern geschehen.
Bitte den Beitrag noch als gelöst markieren. Danke