Powershell Terminalserver Property abschalten
Hi,
ich versuche seit Stunden krampfhaft die Option "Beim Anmelden Verbindung zu Clientlaufwerken herstellen" abzuschalten.
Die Einstellungen sind zu finden bei dem Benutzer im AD unter Umgebung.
Ich versuche das ganze mit Powershell zu realisieren doch der Code lässt dies anscheinend nicht zu.
Hier mal der Code der das Protperty verändern soll.
$OU = "contoso.de/Benutzer"
Get-QADUser -searchRoot $OU -searchScope 'OneLevel' | Where-Object {$_.displayName -Like "mguenther*"} | Set-QADUser -TsDefaultToMainPrinter $false -whatIf
Er spuckt leider auch keine Fehlermeldung zu dem Befehl aus, es sieht so aus als wenn es funktioniert, tut es aber leider nicht.
Gruß
Matze
ich versuche seit Stunden krampfhaft die Option "Beim Anmelden Verbindung zu Clientlaufwerken herstellen" abzuschalten.
Die Einstellungen sind zu finden bei dem Benutzer im AD unter Umgebung.
Ich versuche das ganze mit Powershell zu realisieren doch der Code lässt dies anscheinend nicht zu.
Hier mal der Code der das Protperty verändern soll.
$OU = "contoso.de/Benutzer"
Get-QADUser -searchRoot $OU -searchScope 'OneLevel' | Where-Object {$_.displayName -Like "mguenther*"} | Set-QADUser -TsDefaultToMainPrinter $false -whatIf
Er spuckt leider auch keine Fehlermeldung zu dem Befehl aus, es sieht so aus als wenn es funktioniert, tut es aber leider nicht.
Gruß
Matze
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215345
Url: https://administrator.de/forum/powershell-terminalserver-property-abschalten-215345.html
Ausgedruckt am: 21.12.2024 um 06:12 Uhr
13 Kommentare
Neuester Kommentar
Hallo Matze,
dazu habe ich hier in einem ähnlichen Artikel ein Kommentar geschrieben wie man erweiterte Attribute in den Eigenschaften des Users setzt.
Remotedektopdienste Profil im Active Directory per Batch setzen
Die passenden Eigenschaften heißen : ConnectClientDrivesAtLogon und ConnectClientPrintersAtLogon und können jeweils den Wert 1 oder 0 annehmen.
Zu deinem Script: Die Angabe der OU hat denke ich nicht das richtige Format.
Schau in dem o.a Artikel dann siehst du wie man diese angibt. Dann brauchst du auch nicht den erweiterten Befehl Get-QADUser benutzen.
Grüße Uwe
dazu habe ich hier in einem ähnlichen Artikel ein Kommentar geschrieben wie man erweiterte Attribute in den Eigenschaften des Users setzt.
Remotedektopdienste Profil im Active Directory per Batch setzen
Die passenden Eigenschaften heißen : ConnectClientDrivesAtLogon und ConnectClientPrintersAtLogon und können jeweils den Wert 1 oder 0 annehmen.
Zu deinem Script: Die Angabe der OU hat denke ich nicht das richtige Format.
Schau in dem o.a Artikel dann siehst du wie man diese angibt. Dann brauchst du auch nicht den erweiterten Befehl Get-QADUser benutzen.
Grüße Uwe
Zitat von @mguenth83:
Colrinardo hast du auch ein Script wo nicht jeder der Parameter gesetzt wird. Will das nur für spezielle User machen.
OK da hat mal wieder keiner Zeit zum Lesen .... wieso dann ein Script wenn es nur ein paar User sind ?Colrinardo hast du auch ein Script wo nicht jeder der Parameter gesetzt wird. Will das nur für spezielle User machen.
Na egal ....guckst du hier:
$OU = "CN=Michael Mustermann,OU=Benutzer,DC=contoso,DC=de"
$objUser = [ADSI] "LDAP://$OU"
# # Einige Terminal Service Eigenschaften ausschalten
# # '0' = Disabled '1' = Enabled
$objUser.psbase.InvokeSet('ConnectClientDrivesAtLogon',0)
$objUser.psbase.InvokeSet('DefaultToMainPrinter',0)
$objUser.psbase.InvokeSet('ConnectClientPrintersAtLogon',0)
$objUser.SetInfo()
Damit sollten deine Fragen beantwortet sein.
Grüße Uwe
Das liegt definitv daran, das dein Distinguished Name nicht korrekt ist.
Du darfst dabei den Usernamen nicht so schreiben wie ihn der Benutzer zum Login benutzt, sondern so wie der Name in der MMC steht! Wichtig!
Die Eigenschaft des Userobjekts die diesen Namen enthält ist: "cn".
also z.B.
Grüße Uwe
Du darfst dabei den Usernamen nicht so schreiben wie ihn der Benutzer zum Login benutzt, sondern so wie der Name in der MMC steht! Wichtig!
Die Eigenschaft des Userobjekts die diesen Namen enthält ist: "cn".
also z.B.
$OU = "CN=Michael Mustermann,OU=Benutzer,DC=contoso,DC=de"
poste bitte deinen Code(aber bitte mit Tags) ansonsten kann ich dir nicht weiterhelfen, da ich den obigen Code erfolgreich getestet habe, muss der Fehler in deinem Script liegen.
Da ich die selben Fehlermeldungen erhalte wenn der DN nicht korrekt ist liegt meine Vermutung das dieser nicht korrekt ist. Hat der Name des Users (cn) zufällig ein Komma zwischen Vor- und Nachnamen ? also Michael, Mustermann , dann musst du dieses mit einem Backslash escapen -> Michael\, Mustermann
Grüße Uwe
Da ich die selben Fehlermeldungen erhalte wenn der DN nicht korrekt ist liegt meine Vermutung das dieser nicht korrekt ist. Hat der Name des Users (cn) zufällig ein Komma zwischen Vor- und Nachnamen ? also Michael, Mustermann , dann musst du dieses mit einem Backslash escapen -> Michael\, Mustermann
Grüße Uwe
dann muss für mein Script die erste OU-Zeile bei dir so lauten:
mit welchem Betriebsystem arbeitest du, bzw. welche Powershell Version ?
geb mal ein:
und poste die Ausgabe
und probier nur mal folgende kurze Zeile:
Dann sollte der Name des Users ausgegeben werden, ansonsten stimmt in deinem System etwas nicht.
Alternativ kannst du das setzen der Properties in meinem Script oben auch mal so probieren:
Mehr Info dazu findest du hier.
$OU = "CN=mguenther,OU=Benutzer,DC=contoso,DC=de"
geb mal ein:
$PSVersionTable
und probier nur mal folgende kurze Zeile:
([ADSI]"LDAP://contoso.de/CN=mguenther,OU=Benutzer,DC=contoso,DC=de").cn
Alternativ kannst du das setzen der Properties in meinem Script oben auch mal so probieren:
$objUser.Put('ConnectClientDrivesAtLogon',0)
$objUser.SetInfo()