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.
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:
Get-ADGroup -Server "blabla.domain.de" -Filter {name -like "*suchebegriff*"} -Properties * | Select-Object name
Was mache ich falsch ?
Please also mark the comments that contributed to the solution of the article
Content-Key: 389137
Url: https://administrator.de/contentid/389137
Printed on: April 24, 2024 at 12:04 o'clock
2 Comments
Latest comment
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:
$suchbegriff = read-host -prompt "Suchbegriff eingeben"
Get-ADGroup -Server "blabla.domain.de" -Filter "name -like '*$suchbegriff*'" -Properties * | Select-Object name
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:
$suchbegriff = "*" + $(read-host -prompt "Suchbegriff eingeben") + "*"
Liebe Grüße
Erik