none
Logik Frage RRS feed

  • Frage

  • Hallo allerseits,

    Ich habe folgendes vor:

    Ich möchte eine Abfrage per Read-Host und die Eingabe als Filter für eine Get-Aduser Suche im name Attribut benutzen. Das klappt generell.

    Aber ich möchte abfangen wenn die Suche zu keinem Ergebnis kommt, dann soll die Suche von neuem beginnen. Mit dem was ich jetzt habe kann ich schon Mal einen leeren Filter abfangen, aber nicht einen leeren Rückgabewert von der Get-AdUser suche.

    Irgendwie hänge ich fest und komme zu keiner Lösung. Vielleicht hat ja jemand von euch eine Idee.

    Gruß

    André

    Do {
      $Filter = Read-Host "Suchbegriff eingeben"
      If ($Filter) {
        # Eingabe erkannt, weiter gehts:
        $retry = $false
      } Else {
        # keine Eingabe erkannt, nochmal:
        Write-Host "Es wurden keine Eingabe registriert" -ForegroundColor "Red"
        $retry = $true
      }
    } While ($retry)
    $Filter = '*' + $Filter + '*'
    $Suche = Get-ADUser -f {name -like $Filter} -Properties * | FL Name,SamaccountName,wWWHomePage
    $Suche

    Dienstag, 7. Juli 2015 08:36

Antworten

  • Hi André,

    mag sein, dass ich falsch liege, aber wenn Get-ADUser keinen Eintrag findet, erscheint eine Fehlermeldung - in Deinem Beispiel würde die Variable damit leer bleiben, aber Du hast eben die häßliche Fehlermeldung. Leider hat Get-ADUser Probleme mit dem Parameter "-ErrorAction", aber da kannst Du wohl mit "Try{}...Catch{}" was machen.

    http://stackoverflow.com/questions/23000356/powershell-erroraction-silentlycontinue-does-not-work-with-get-aduser

    Ansonsten könntest Du eine weitere Do-Schleife einbauen, die die Variable $Suche auswertet, also z.B. wie folgt (wenn die Variable $suche leer ist, dann fang von vorne an):

    do {
       ...
       }
    while ($suche -eq $null)

    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    • Als Antwort markiert André Koenig Dienstag, 7. Juli 2015 10:19
    Dienstag, 7. Juli 2015 08:46

Alle Antworten

  • Hi André,

    mag sein, dass ich falsch liege, aber wenn Get-ADUser keinen Eintrag findet, erscheint eine Fehlermeldung - in Deinem Beispiel würde die Variable damit leer bleiben, aber Du hast eben die häßliche Fehlermeldung. Leider hat Get-ADUser Probleme mit dem Parameter "-ErrorAction", aber da kannst Du wohl mit "Try{}...Catch{}" was machen.

    http://stackoverflow.com/questions/23000356/powershell-erroraction-silentlycontinue-does-not-work-with-get-aduser

    Ansonsten könntest Du eine weitere Do-Schleife einbauen, die die Variable $Suche auswertet, also z.B. wie folgt (wenn die Variable $suche leer ist, dann fang von vorne an):

    do {
       ...
       }
    while ($suche -eq $null)

    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    • Als Antwort markiert André Koenig Dienstag, 7. Juli 2015 10:19
    Dienstag, 7. Juli 2015 08:46
  • Hallo,

    Ben hat dir deine Frage ja schon beantwortet, aber ich haette noch einen Einwand.

    Es ist nicht sinnvoll beim Get-AdUser alle Properties auszulesen mit -Properties * wenn du nur das Property wWWHomePage zusaetlich zu den eh gelieferten Properties Name und SamAccountName brauchst.

    So kannst Du dein AD entlasten.

    Get-ADUser -f {name -like $Filter} -Properties wWWHomePage | FL Name,SamaccountName,wWWHomePage

    Beste Gruesse
    brima




    Dienstag, 7. Juli 2015 09:16
  • Hallo.

    Ben, das hat mit der weiteren Do-Schleife geklappt, ich hätte zwar gerne zusätzlich noch eine Meldung "Es wurde nichts gefunden" aber so geht's auch.

    Brima, danke Dir auch für den Tipp!

    Danke und Gruß

    André

    Dienstag, 7. Juli 2015 10:19