netzwerkdude
Goto Top

PS - Variable an -filter übergeben

Servus,

ich würde gerne an den -filter parameter von z.B. get-ADUser eine Variable übergeben - lt. dem doc hier:


https://technet.microsoft.com/en-us/library/hh531527(v=ws.10).aspx
Example 9:
Get-ADUser -Filter 'lastLogon -gt $date'


sollte das gehen, aber:
mit ' ' wird da der filterbegriff zu einem string, und $date nicht mehr ausgewertet, oder?
Zumindest funktioniert es so nicht face-sad

Wie kann ich also dem filter Parameter eine Variable übergeben?

Content-Key: 372443

Url: https://administrator.de/contentid/372443

Printed on: April 18, 2024 at 16:04 o'clock

Member: emeriks
emeriks Apr 27, 2018 at 13:45:13 (UTC)
Goto Top
Hi,
Get-ADUser -Filter {lastLogon -gt $date}

E.
Member: NetzwerkDude
NetzwerkDude Apr 27, 2018 at 14:22:17 (UTC)
Goto Top
das eigentlich problem:

$user = 'test'  
Get-ADUser -Filter {Name -like "*$user*"}  

funktioniert nicht
Mitglied: 136037
Solution 136037 Apr 27, 2018 updated at 17:58:32 (UTC)
Goto Top
Zitat von @NetzwerkDude:

das eigentlich problem:

> $user = 'test'  
> Get-ADUser -Filter {Name -like "*$user*"}  
> 

funktioniert nicht
$user = 'test'  
Get-ADUser -Filter "Name -like '*$user*'"  
Oder
$user = 'test'  
Get-ADUser -Filter * | ?{$_.Name -like "*$user*"}  
oder
$user = 'test'  
Get-ADUser -ldapfilter "(cn=*$user*)"  
Member: NetzwerkDude
NetzwerkDude Apr 30, 2018 at 08:22:39 (UTC)
Goto Top
Hi,

Die unteren zwei sind soweit klar, einmal nachgelagerte filterung, einmal anderer parameter.

Aber ich frage mich wie der PowerShell Host den ersten Befehlt "aufrollt" damit $user aufgelöst wird? d.h.warum funktionieren in diesem fall die singlequotes so, das er die Variable auflöst?
Mitglied: 136037
Solution 136037 Apr 30, 2018 updated at 08:26:49 (UTC)
Goto Top
Zitat von @NetzwerkDude:
Aber ich frage mich wie der PowerShell Host den ersten Befehlt "aufrollt" damit $user aufgelöst wird? d.h.warum funktionieren in diesem fall die singlequotes so, das er die Variable auflöst?
Der Filter "suggeriert" einem das man hier nach Powershell Syntax arbeiten kann wenn man mit geschweiften Klammern arbeitet, dem ist aber nicht so denn jeder Filter folgt der Syntax des CMDLet Anbieters, also bei WMI Filter arbeiten hier bspw. wieder anders als bei dem hiesigen LDAP-Anbieter des AD.
Geschweifte Klammern sorgen bei Filtern deswegen oftmals für Verwirrung.