Remotedesktopdienste-Profil und Basisordner mit Powershell setzen

Ein PowerShell Script Auszug um die Basisordner und das Remotedesktopdienste-Profil automatisiert zu setzen.

Da man beim Anlegen (New-ADUser) oder Bearbeiten (Set-ADUser) von Benutzern mit der Powershell leider nicht die Attribute für das Remotedesktopdienste-Profil und Basisordner beschreiben kann, hier einmal der „Umweg“ mit Powershell direkt über ADSI.

Import-Module ActiveDirectory
 
$SERVER = '<Name_des_Profilserver>'
$DOMAIN = (Get-ADDomain).DistinguishedName
 
$OU = 'OU=Benutzer,OU=derTest,' + $DOMAIN
Get-ADUser -Filter * -SearchBase $OU | ForEach-Object {
    $PROFILEPATH = '\\' + $SERVER + '\RDSKonfig\Profiles\' + $_.SamAccountName
    $USERDIRPATH = '\\' + $SERVER + '\RDSKonfig\Userdirs\' + $_.SamAccountName
    $ADSI = [ADSI]('LDAP://{0}' -f $_.DistinguishedName)
    try {
        $ADSI.InvokeSet('TerminalServicesProfilePath',$PROFILEPATH)
        $ADSI.InvokeSet('TerminalServicesHomeDrive','W:')
        $ADSI.InvokeSet('TerminalServicesHomeDirectory',$USERDIRPATH)
        $ADSI.SetInfo()
    }
     catch {
        Write-Error $Error[0]
    }
}

Im Script wird die angegebene OU nach Benutzerobjekten durchsucht und jedem Objekt der Profilpfad (\\<SERVER>\RDSKonfig\Profiles\<Anmeldename>) sowie das Laufwerk (W:) und der Basisordner (\\<SERVER>\RDSKonfig\UserDirs\<Anmeldename>) hinzugefügt.

Terminaldienste Profile Basisordner
Terminaldienste Profile Basisordner

Eine Alternative zum Bearbeiten des Benutzerobjekt mit ADSI wäre die Verwendung der kostenlosen Quest PowerShell Commands for Active Directory.

Neben der PowerShell könnte man an dieser Stelle natürlich auch auf die guten alten Gruppenrichtlinien Objekte verweisen: