Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Terminalserver Property abschalten

Frage Entwicklung Batch & Shell

Mitglied: mguenth83

mguenth83 (Level 1) - Jetzt verbinden

27.08.2013, aktualisiert 16:21 Uhr, 3548 Aufrufe, 13 Kommentare

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
Mitglied: yasami
27.08.2013 um 15:46 Uhr
hast du die AD-Module aktiviert?

"Import-Module ActiveDirectory"

Diese müssen immer als erstes aktiviert werden, vielleicht liegt es daran ;)
Bitte warten ..
Mitglied: DerWoWusste
27.08.2013 um 15:57 Uhr
Hi.

Und der Parameter -whatif ist nicht zufällig der Schuldige?
Bitte warten ..
Mitglied: colinardo
27.08.2013 um 16:04 Uhr
Hallo Matze,
dazu habe ich hier in einem ähnlichen Artikel ein Kommentar geschrieben wie man erweiterte Attribute in den Eigenschaften des Users setzt.
http://www.administrator.de/forum/remotedektopdienste-profil-im-active- ...

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
Bitte warten ..
Mitglied: mguenth83
27.08.2013, aktualisiert um 16:38 Uhr
PS C:\Users\1> Get-QADUser mguenther

Name Type DN

mguenther user CN=mguenther,OU=Benutzer,DC=contoso,DC=de

komischerweise findet er den benutzer mit dem Get-Befehl. Mit dem Set Befehl geht's nicht.

Colrinardo hast du auch ein Script wo nicht jeder der Parameter gesetzt wird. Will das nur für spezielle User machen.

Gruß
Matze
Bitte warten ..
Mitglied: mguenth83
27.08.2013, aktualisiert um 16:43 Uhr
Habe jetzt auch nochmal das whatif weggenommen. Jetzt sagt er auch ne Fehlermeldung

$OU = "contoso.de/Benutzer"
Get-QADUser -searchRoot $OU -searchScope 'OneLevel' | `
Where-Object {$_.displayName -Like "mguenther*"} | `
Set-QADUser -TsConnectClientDrives $false

Set-QADUser : Unbekannter Name. (Exception from HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))
In Zeile:18 Zeichen:1
+ Set-QADUser -TsConnectClientDrives $false `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [Set-QADUser], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.
Cmdlets.SetUserCmdlet
Bitte warten ..
Mitglied: colinardo
27.08.2013, aktualisiert um 18:11 Uhr
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 ?
Na egal ....guckst du hier:
01.
$OU = "CN=Michael Mustermann,OU=Benutzer,DC=contoso,DC=de" 
02.
$objUser = [ADSI] "LDAP://$OU" 
03.
# # Einige Terminal Service Eigenschaften ausschalten 
04.
# # '0' = Disabled   '1' = Enabled 
05.
$objUser.psbase.InvokeSet('ConnectClientDrivesAtLogon',0) 
06.
$objUser.psbase.InvokeSet('DefaultToMainPrinter',0) 
07.
$objUser.psbase.InvokeSet('ConnectClientPrintersAtLogon',0) 
08.
$objUser.SetInfo()
Die möglichen Eigenschaften die du für das TerminalServer Interface setzen kannst, kannst du hier nachlesen.

Damit sollten deine Fragen beantwortet sein.

Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
27.08.2013 um 17:05 Uhr
Danke für dein Script,
sagen wir es so ich lege einen Benutzer an mit diversen Gruppen und Einstellungen. Jeden neuen User den ich ab jetzt erstelle soll die Häckchen raus haben.

Dein Script ist gut doch leider spuckt er mir wieder eine Fehlermeldung aus:

Liegt es vielleicht daran das ich in meiner Realen Domain ein Bindestrich drin habe? Contoso-m z.B


Ausnahme beim Aufrufen von "InvokeSet" mit 2 Argument(en): "Unbekannter Name. (Exception from HRESULT: 0x80020006
(DISP_E_UNKNOWNNAME))"
In Zeile:4 Zeichen:1

$objUser.psbase.InvokeSet('ConnectClientDrivesAtLogon',0)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Ausnahme beim Aufrufen von "InvokeSet" mit 2 Argument(en): "Unbekannter Name. (Exception from HRESULT: 0x80020006
(DISP_E_UNKNOWNNAME))"
In Zeile:5 Zeichen:1
+$objUser.psbase.InvokeSet('DefaultToMainPrinter',0)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Ausnahme beim Aufrufen von "InvokeSet" mit 2 Argument(en): "Unbekannter Name. (Exception from HRESULT: 0x80020006
(DISP_E_UNKNOWNNAME))"
In Zeile:6 Zeichen:1
+ $objUser.psbase.InvokeSet('ConnectClientPrintersAtLogon',0)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Bitte warten ..
Mitglied: colinardo
27.08.2013, aktualisiert um 18:10 Uhr
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.
$OU = "CN=Michael Mustermann,OU=Benutzer,DC=contoso,DC=de"
Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
28.08.2013 um 07:47 Uhr
Hi Uwe,
habe jetzt das ganze mal ausprobiert und es scheint jedenfalls das er den Namen nimmt, leider kommt jetzt schon wieder eine Fehlermeldung mit dem InvokeCommand.

Ausnahme beim Aufrufen von "InvokeSet" mit 2 Argument(en): "Ein solches Objekt ist auf dem Server nicht vorhanden.
"
In Zeile:6 Zeichen:1
+ $objUser.psbase.InvokeSet('ConnectClientDrivesAtLogon',0)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Ausnahme beim Aufrufen von "InvokeSet" mit 2 Argument(en): "Ein solches Objekt ist auf dem Server nicht vorhanden.
"
In Zeile:7 Zeichen:1
+ $objUser.psbase.InvokeSet('DefaultToMainPrinter',0)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Ausnahme beim Aufrufen von "InvokeSet" mit 2 Argument(en): "Ein solches Objekt ist auf dem Server nicht vorhanden.
"
In Zeile:8 Zeichen:1
+ $objUser.psbase.InvokeSet('ConnectClientPrintersAtLogon',0)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Ausnahme beim Abrufen des Elements "SetInfo": "Ein solches Objekt ist auf dem Server nicht vorhanden.
"
In Zeile:9 Zeichen:1
+ $objUser.SetInfo()
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], ExtendedTypeSystemException
+ FullyQualifiedErrorId : CatchFromBaseGetMember
Bitte warten ..
Mitglied: colinardo
28.08.2013, aktualisiert um 08:35 Uhr
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
Bitte warten ..
Mitglied: mguenth83
28.08.2013, aktualisiert um 11:12 Uhr
Hi,
also entweder steh ich aufm Schlauch oder irgendwas ist hier faul,
ich geb dir mal die Daten die ich aufm MMC habe.

In der OU Benutzer sieht der Name wie folgt aus:
Name Typ Beschreibung
mguenther Benutzer test

Wenn ich in die Eigenschaften gehe:
Vorname: Matthias
Nachname: Günther
Anzeigename: mguenther
Beschreibung: test
Benutzernameldename (Prä-Windows2000): mguenther
Kanonischer Name des Objekts: contoso.de/Benutzer/mguenther

Wenn ich den Befehl:
01.
$OU = "contoso.de/Benutzer" 
02.
Get-QADUser -searchRoot $OU -searchScope 'OneLevel' | ` 
03.
Where-Object {$_.displayName -Like "mguenther*"} 

kommt als Ergebniss:

01.
Name                           Type            DN                                                                            
02.
----                                ------             ---------                                                                            
03.
mguenther                    user            CN=mguenther,OU=Benutzer,DC=contoso,DC=de 
04.
 
Hoffe das gibt Aufschluss darüber was falsch ist...

Gruß
Matthias
Bitte warten ..
Mitglied: colinardo
29.08.2013, aktualisiert um 13:13 Uhr
dann muss für mein Script die erste OU-Zeile bei dir so lauten:
$OU = "CN=mguenther,OU=Benutzer,DC=contoso,DC=de"
mit welchem Betriebsystem arbeitest du, bzw. welche Powershell Version ?
geb mal ein:
$PSVersionTable
und poste die Ausgabe

und probier nur mal folgende kurze Zeile:
01.
([ADSI]"LDAP://contoso.de/CN=mguenther,OU=Benutzer,DC=contoso,DC=de").cn
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:
01.
$objUser.Put('ConnectClientDrivesAtLogon',0) 
02.
$objUser.SetInfo()
Mehr Info dazu findest du hier.
Bitte warten ..
Mitglied: mguenth83
17.09.2013 um 22:21 Uhr
Hat leider alles nicht funktioniert daher habe ich jetzt diese befehele genutzt

01.
Set-QADUser $Benutzername -TsConnectClientDrives 0 
02.
Set-QADUser $Benutzername -TsConnectPrinterDrives 0 
03.
Set-QADUser $Benutzername -TsDefaultToMainPrinter 0
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Powershell - In Textdatei suchen und ersetzen (3)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Hashtable to Übersichtliche Darstellung (2)

Frage von Marabunta zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...