JuppDietz 10 Geschrieben 11. August 2010 Melden Teilen Geschrieben 11. August 2010 Hallo. Ich muss aus dem W2k3-AD den TerminalServer-Profilpfad auslesen und in Abhängigkeit einer ganzer Reihe von Faktoren ggf. neue Pfade setzen. Nun habe ich die entsprechende Schnittstelle ins AD eingerichtet und kann auch mit dem "Get-ADUser"-Kommando die User abfragen. Nach einer Suche im Schema habe ich herausgefunden, dass der TS-Profilpfad im Attribut "userParameters" steht - was ein Binärfeld ist. Hat jemand eine Idee, wie ich über die Powershell trotzdem an das Feld herankomme? Danke und Gruß Jupp Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 11. August 2010 Melden Teilen Geschrieben 11. August 2010 Moin, ab Windows 2003 gibt es eine ADSI-Schnittstelle dafür. Vielleicht kannst du die auch über PS ansprechen. faq-o-matic.net Wie kann ich die Terminal-Server-Einstellungen im AD verändern? Gruß, Nils Zitieren Link zu diesem Kommentar
BrainStorm 10 Geschrieben 11. August 2010 Melden Teilen Geschrieben 11. August 2010 Hallo JuppDietz, die Quest AD Commandlets können das auch ;) PowerShell Commands (CMDLETs) for Active Directory by Quest Software Set-QADUser -Identity <User> [-TsProfilePath <String>] [-TsHomeDirectory <String>] [-TsHomeDrive <String>] [-TsWorkDirectory <String>] [-TsInitialProgram <String>] [-TsMaxDisconnectionTime <TimeSpan>] [-TsMaxConnectionTime <TimeSpan>] [-TsMaxIdleTime <TimeSpan>] [-TsAllowLogon] [-TsRemoteControl <Int32>] [-TsReconnectionAction <Int32>] [-TsBrokenConnectionAction <Int32>] [-TsConnectClientDrives] [-TsConnectPrinterDrives] [-TsDefaultToMainPrinter] Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 11. August 2010 Autor Melden Teilen Geschrieben 11. August 2010 (bearbeitet) Moin. Ich habe bereits befürchtet, den komplizierten Weg über das ADSI gehen zu müssen. Dann muss ich mich jetzt wohl damit ein wenig befassen... Mit den Quest-Tools geht es leider nicht. Der Pfad des TS-Profils steht leider nicht im Feld "TsProfilePath". Das Feld gibt es zwar ab W2k8 im AD-Schema, wird jedoch meines Wissens selbst dort noch nicht genutzt. Der Profilpfad steht leider im Schema-Attribut "userParameters" - und das Attribut ist verschlüsselt bzw. nicht lesbar :-(( Zudem habe ich einen W2k3-Domain... Beispiel: [PS] C:\>Get-QADUser -Identity testuser | ft name,TsProfilePath Name TsProfilePath ---- ------------- _Test Account Im Userkonto sehe ich den Pfad... Gruß Jupp bearbeitet 11. August 2010 von JuppDietz Beispiel hinzugefügt Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 11. August 2010 Melden Teilen Geschrieben 11. August 2010 Moin, ich kenne das Quest-Cmdlet nicht, aber das neue Feld wird in der Tat nicht verwendet. faq-o-matic.net Terminalserver-Profileinstellungen in AD: Die ungenutzte Neuerung Das Feld userParameters ist einfach ein BLOB, nicht besonders verschlüsselt, aber eben auch nicht ohne Weiteres les- und schreibbar. Allgemein macht PowerShell mit AD frühestens ab 2008 R2 Spaß. Bei älteren Systemen würde ich altbewährte Techniken einsetzen ... Gruß, Nils Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 11. August 2010 Autor Melden Teilen Geschrieben 11. August 2010 Hallo Nils, so hart würde ich es jetzt auch nicht sehen :-) Aber du hast schon recht. Mit den älteren Kisten ist die Arbeit manchmal ein bisschen schwierig. Leider bin ich nicht so der VB-Scripter und mit Batches macht es noch weniger Spaß :-)) Gruß Jupp Zitieren Link zu diesem Kommentar
BrainStorm 10 Geschrieben 12. August 2010 Melden Teilen Geschrieben 12. August 2010 Moin, Es gibt bei den Quest Commandlets zwei Dinge zu beachten. 1. funktionieren die TS-Einstellungen nur auf Server Betriebssystemen (2003/2008) und nicht auf Windows XP 2. musst du danach die Methode CommitChanges aufrufen, dann klappts - eben erfolgreich getestet ;) $deinuser = get-qaduser <Username> $deinuser.TsProfilePath = "\\server\profilpfad" $deinuser.CommitChanges() Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 12. August 2010 Autor Melden Teilen Geschrieben 12. August 2010 (bearbeitet) Perfekt!!! Ich habe das Ganze auf meinem Win7-Client ausgeführt und da funktioniert es nicht. Nun habe ich es auf dem DC selbst gemacht und - wie bereits von dir getestet - funktioniert es. Anmerkung: Mit der PowerGUI kann ich die Änderung auch auf meinem Client machen. Nur über die Konsole tut er es nicht... Eigentlich sollte das Script aus Gründen der Portierbarkeit nicht auf einem Server laufen müssen, sondern von einem Client aus, aber egal :-)) Vielen Dank!! Grüße aus dem Westerwald Jupp bearbeitet 12. August 2010 von JuppDietz Zitieren Link zu diesem Kommentar
JuppDietz 10 Geschrieben 12. August 2010 Autor Melden Teilen Geschrieben 12. August 2010 Jetzt habe ich es auch von der Konsole aus: Man sollte nicht vergessen, das SnapIn in die Konsole zu laden bzw. im Profil zu hinterlegen :-) Add-PSSnapin quest.activeroles.admanagement Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 15. August 2010 Melden Teilen Geschrieben 15. August 2010 (bearbeitet) Hallo Jupp, Kompliziert ist es mit ADSI auch nicht besonders #User suchen $ds=([ADSISearcher]"LDAP://") $ds.filter="(&(ObjectCategory=user)(samaccountname=KarlNapf))" $ds.findone().path #=DN des gefundenen Users #Objekt binden $user=[ADSI]($ds.findone().path) #kannst auch direkt den User eingeben #Eigenschaft setzen $user.invokeset("TerminalServicesProfilePath","\\192.168.47.11\`$TSHome") # `zum Maskieren des $-Zeichens $user.setinfo() Ich bin ein Freund von Kompatibilität und nutze am liebsten möglichst global anwendbare Skripte ohne Quest-Erweiterungen etc. Wenn man sich den Aufwand ansieht, den antike Techniken wie VBS für solch eine Lösung erfordern würden, macht Powershell doch auf jeden Fall Spass :). cu blub PS: Ich habe mir erlaubt, deine Aufgabe hier etwas näher zu erläutern http://www.powershellpraxis.de/ActiveDirectory.949.0.html unter 4.2.2 bearbeitet 15. August 2010 von blub Zitieren Link zu diesem Kommentar
BrainStorm 10 Geschrieben 16. August 2010 Melden Teilen Geschrieben 16. August 2010 Hallo blub, das ist natürlich die elegantere Variante ;) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.