Kategorieauswahl

Translator

Google +1

Bitte teilen Sie Google mit, wenn Ihnen diese Seite gefällt.

Terminalserverprofilepath mittels Powershell abfragen

Benutzer aus dem AD (Active Directory) mit Powershell auszulesen ist nicht besonders schwierig. Alles was man dazu braucht ist entweder einen DC (Domänencontroller) oder einen Client mit installiertem AD-Modul für Powershell aus den RSAT (Remote-Server-Administration-Tools) und natürlich die Powershell Version 2.0 oder höher.

Mit dem Befehl get-aduser Benutzername erhält man aber nur einen kleinen Teil der Benutzereigenschaften. Wenn Sie mal richtig aufdrehen wollen (alle Eigenschaften haben) müssen Sie erst noch einmal etwas nachhelfen: get-aduser Benutzername -properties *. Leider ist der Pfad, den mal eventuell im Terminalserver bzw. Remotedesktopdienste -Profilepfad angegeben hat dort nicht wirklich auszulesen. Es gibt im LDAP zwar extra das Attribut msTSProfilePath doch legt Microsoft dort überhaupt nichts ab!!! Der Profilepfad ist im Attribut userParameters mit viel anderem Krempel leider codiert hinterlegt. Nichts desto trotz kann man hier wenigstens feststellen ob der TS Profilpfad beim Benutzer angegeben wurde, oder nicht. Das unten aufgeführte Script sollte weiter helfen. Wünschen Sie Verbesserungen/Anpassungen hinterlassen Sie einen entsprechenden Kommentar.

 

function SetTSProperties()
{
 $ou = [adsi]"LDAP://ou=mytestou,dc=nwtraders,dc=com"
 $user = $ou.psbase.get_children().find($userDN)
 $user.psbase.invokeSet("allowLogon",1)
 $user.psbase.invokeSet("TerminalServicesHomeDirectory",$hDirValue)
 $user.psbase.invokeSet("TerminalServicesProfilePath",$ppValue)
 $user.psbase.invokeSet("TerminalServicesHomeDrive",$hdValue)
 $user.setinfo()
} #end SetTSProperties
function QueryTSProperties()
{
 $ou = [adsi]"LDAP://ou=mytestou,dc=nwtraders,dc=com"
 $user = $ou.psbase.get_children().find($userDN)
 foreach($property in $aryTSProperties)
 {
  "$($Property) value: $($user.psbase.invokeget($Property))"
 } #end foreach
} #end QueryTSProperties
$userDN = "CN=My User"
$hDirValue = "\\Hamburg\TSUsers\Home\TestUser"
$hdValue = "t:"
$ppValue = "\\Hamburg\TSUsers\Profiles\TestUser"
$aryTSProperties="allowLogon","TerminalServicesHomeDirectory",
  "TerminalServicesHomeDrive","TerminalServicesProfilePath"
SetTSProperties
queryTSProperties

Anregungen und Kommentare erwünscht