Powershell Filtern einer Ausgabe
Hallo, ich übe gerade mit der Powershell und möchte gern meine Ausgabe Filtern.
Ich habe nun diese Befehlskette:
Get-ADUser -filter * | select samaccountname, DistinguishedName, @{n="TSProfilePath";e={([adsi]("LDAP://" + $_.DistinguishedName)).psbase.InvokeGet("terminalservicesprofilepath")}}
Das bringt den Output:
samaccountname DistinguishedName TSProfilePath
----------------- -------------
testuser CN=testuser, OU=test,DC=test,DC=local \\fileserver\profile2\testuser
Hänge ich nun folgendes an die Befehlskette kann ich den Account Namen Filtern
| ?{$_.samaccountname -eq 'testuser' }
Nun würde ich aber gern den terminalservicesprofilepath filtern
| ?{$_.TSProfilePath -eq '\\fileserver\profile\testuser' }
aber das funktioniert hier so nicht.
Kann mir jemand sagen wie der Filter aussehen muss?
Ich habe nun diese Befehlskette:
Get-ADUser -filter * | select samaccountname, DistinguishedName, @{n="TSProfilePath";e={([adsi]("LDAP://" + $_.DistinguishedName)).psbase.InvokeGet("terminalservicesprofilepath")}}
Das bringt den Output:
samaccountname DistinguishedName TSProfilePath
----------------- -------------
testuser CN=testuser, OU=test,DC=test,DC=local \\fileserver\profile2\testuser
Hänge ich nun folgendes an die Befehlskette kann ich den Account Namen Filtern
| ?{$_.samaccountname -eq 'testuser' }
Nun würde ich aber gern den terminalservicesprofilepath filtern
| ?{$_.TSProfilePath -eq '\\fileserver\profile\testuser' }
aber das funktioniert hier so nicht.
Kann mir jemand sagen wie der Filter aussehen muss?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 629779
Url: https://administrator.de/forum/powershell-filtern-einer-ausgabe-629779.html
Ausgedruckt am: 26.12.2024 um 10:12 Uhr
7 Kommentare
Neuester Kommentar
Der Filter ist so absolut korrekt und funktioniert auch wie vorgesehen! Aber dein Kaffee war heute morgen wohl etwas schwach ...
Hast du Glück das heute erst Mittwoch ist sonst hätte man dich hier wohl gevierteilt und verspeist 🐟 .
Gruß p.
\\fileserver\profile\testuser
\\fileserver\profile2\testuser
Fällt dir was auf?\\fileserver\profile2\testuser
Hast du Glück das heute erst Mittwoch ist sonst hätte man dich hier wohl gevierteilt und verspeist 🐟 .
Gruß p.
Für die Powershell ist es ein Unterschied ob etwas in Gänsefüßchen " oder Hochkommatar ' eingeschlossen wird.
Das schon, aber nur so das in doppelten Anführungszeichen Variablen und Escape-Sequenzen expandiert werden die du hier aber in deinem Beispiel nicht nutzt ( nur zur Info: Backslashes sind keine Escapesequenzen in der PS)!Get-ADUser -filter * | select samaccountname, DistinguishedName, @{n="TSProfilePath";e={([adsi]("LDAP://" + $_.DistinguishedName)).psbase.InvokeGet("terminalservicesprofilepath")}} | ?{$_.TSProfilePath} -eq "\\fileserver\profile\testuser"
Der Fehler liegt hier nicht in der Art der Anführungszeichen sondern an einem Syntaxfehler deinerseits genauer gesagt hieran:?{$_.TSProfilePath} -eq "\\fileserver\profile\testuser"
Du beendest hier das Where Object schon mit der geschweiften Klammer vor dem Vergleich, so muss das natürlich aussehen:?{$_.TSProfilePath -eq "\\fileserver\profile\testuser"}
Also ob du hier Hochkommas oder normale Anführungszeichen nutzt ist bei deinem Pfad Jacke wie Hose, das kommt erst ins Spiel wenn du darin Sonderzeichen wie Dollarzeichen und Backticks innerhalb von normalen Anführungszeichen nutzt!
Suche ich Beispiele im Netz finde ich mal Gänsefüße ein anderes mal Hochkomma.
Lässt sich schnell klären:About Quoting Rules
About Special Characters
Warum keine Frage ist zu Dumm um nicht gefragt zu werden.
Aber in einem Admin-Forum echt peinlich, mal ehrlich, man sollte zumindest vorher nochmal alles selbst penibelst selbst kontrollieren und nicht gleich bei jedem Fizzel ins Forum posten, dann wären solche Posts überflüssig auch im eigenen und im Interesse der Helfer hier die Ihre Zeit opfern.Zitat von @svenpaush:
Hier lässt sich nicht einmal ein Befehl aus der Console raus kopieren wenn er einen Zeilenumbruch hat.
MS bekommt es bis heute nicht hin ein Fenster zu öffnen was sich in der Größe frei verändern lässt etc. etc.
PS Anfänger ... Geht alles man muss nur ein aktuelles OS benutzen .Hier lässt sich nicht einmal ein Befehl aus der Console raus kopieren wenn er einen Zeilenumbruch hat.
MS bekommt es bis heute nicht hin ein Fenster zu öffnen was sich in der Größe frei verändern lässt etc. etc.
Schön, meins auch schon seit 20 Jahren .
Seitdem habe ich viele Probleme einfach nicht mehr.
So isses, leider muss man sagen, läuft der Großteil der Masse da draußen einfach nur stumpft den anderen hinterher ohne mal über den Tellerrand zu schauen.Beruflich muss ich mich aber mit dem Dreck weiter beschäfftigen.
Joa wat mut dat mut.Meine Befehle die ich benötige habe ich nun zusammen.
Ich habe auch eine Möglichkeit gefunden die Skripte besser zusammen zu fummeln.
Fummeln darfst du Zuhause aber nich bei der Arbeit .Ich habe auch eine Möglichkeit gefunden die Skripte besser zusammen zu fummeln.
Hab vielen Dank für deine Hilfe.
Bidde.