Powershell: Nach AD-Gruppen suchen (Suchbegriff per read-host)
Hallo
ich beschäftige mich seit ein paar Tagen zum ersten Mal mit der Powershell und ollte mir ein paar kleine Helferlein scripten. Allerdings hänge ich schon an einer wahrscheinlich total simplen Hürde.
Wenn ich das unten genannte Beispiel ausführe und meine Variable mit read-host fülle dann kommt am ende gar keine Ausgabe.
Wenn ich das von Hand, also ohne einlesen der Variable mache, funktioniert das ganze:
Was mache ich falsch ?
ich beschäftige mich seit ein paar Tagen zum ersten Mal mit der Powershell und ollte mir ein paar kleine Helferlein scripten. Allerdings hänge ich schon an einer wahrscheinlich total simplen Hürde.
Wenn ich das unten genannte Beispiel ausführe und meine Variable mit read-host fülle dann kommt am ende gar keine Ausgabe.
1
2
3
4
5
6
2
3
4
5
6
cls
write-host ""
write-host -ForegroundColor Yellow "Suche nach:"
write-host ""
$suchbegriff = read-host -prompt "Suchbegriff eingeben"
Get-ADGroup -Server "blabla.domain.de" -Filter {name -like "*$suchbegriff*"} -Properties * | Select-Object name
Wenn ich das von Hand, also ohne einlesen der Variable mache, funktioniert das ganze:
1
Get-ADGroup -Server "blabla.domain.de" -Filter {name -like "*suchebegriff*"} -Properties * | Select-Object name
Was mache ich falsch ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 389137
Url: https://administrator.de/forum/powershell-nach-ad-gruppen-suchen-suchbegriff-per-read-host-389137.html
Ausgedruckt am: 18.04.2025 um 02:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Energise, willkommen auf Administrator.de!
Die Verwendung von Variablen in der Filter Syntax der Befehle ist oft nicht einheitlich und führt in dieser Variante auch ohne Fehlermeldung zu keinen Ergebnissen.
Siehe dazu folgende Übersicht als Erklärung: Filters with PowerShell Active Directory Module Cmdlets
Für dein Beispiel kannst du den Filter so umschreiben damit du die Variable verwenden kannst:
Oder eben im Zweifel immer (langsamer) mit einem nachgeschalteten Where-Object.
Oder die Sternchen mit in die Variable schreiben, viele Wege führen nach Rom.
Grüße Uwe
Die Verwendung von Variablen in der Filter Syntax der Befehle ist oft nicht einheitlich und führt in dieser Variante auch ohne Fehlermeldung zu keinen Ergebnissen.
Siehe dazu folgende Übersicht als Erklärung: Filters with PowerShell Active Directory Module Cmdlets
Für dein Beispiel kannst du den Filter so umschreiben damit du die Variable verwenden kannst:
1
2
2
$suchbegriff = read-host -prompt "Suchbegriff eingeben"
Get-ADGroup -Server "blabla.domain.de" -Filter "name -like '*$suchbegriff*'" -Properties * | Select-Object name
1
Get-ADGroup -Server "blabla.domain.de" -Filter * | ?{$_.Name -like "*$suchbegriff*"}
Grüße Uwe
Moin,
Deshalb mache ich sowas immer so. Damit umgehe ich das Problem:
Liebe Grüße
Erik
Zitat von @colinardo:
Die Verwendung von Variablen in der Filter Syntax der Befehle ist oft nicht einheitlich und führt in dieser Variante auch ohne Fehlermeldung zu keinen Ergebnissen.
Siehe dazu folgende Übersicht als Erklärung: Filters with PowerShell Active Directory Module Cmdlets
Die Verwendung von Variablen in der Filter Syntax der Befehle ist oft nicht einheitlich und führt in dieser Variante auch ohne Fehlermeldung zu keinen Ergebnissen.
Siehe dazu folgende Übersicht als Erklärung: Filters with PowerShell Active Directory Module Cmdlets
Deshalb mache ich sowas immer so. Damit umgehe ich das Problem:
1
$suchbegriff = "*" + $(read-host -prompt "Suchbegriff eingeben") + "*"
Liebe Grüße
Erik