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-Key: 208672

Url: https://administrator.de/contentid/208672

Printed on: April 23, 2024 at 05:04 o'clock

Member: Patriot
Patriot Jun 26, 2013 at 08:58:47 (UTC)
Goto Top
Hallo Rüdiger,

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

new-aduser
Member: zg1496118
zg1496118 Jun 26, 2013 at 09:27:36 (UTC)
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?
Member: colinardo
Solution colinardo Jun 26, 2013, updated at Jun 25, 2014 at 11:33:36 (UTC)
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
Member: zg1496118
zg1496118 Jun 26, 2013 at 11:35:26 (UTC)
Goto Top
Funktioniert perfekt!!!!

Vielen Dank face-smile

Gruß, Rüdiger
Member: colinardo
colinardo Jun 26, 2013 at 12:07:41 (UTC)
Goto Top
Gern geschehen.
Bitte den Beitrag noch als gelöst markieren. Danke