none
Ausgabe in Variable aus foreach RRS feed

  • Frage

  • Hi an Alle,

    bin wieder mal an einem bestimmt null acht fünfzehn Problem jedoch komm ich einfach nicht weiter.

    ich habe folgendes Problem:

    Ich habe eine List und diese wir mit get-aduser in einer foreach schleife aufgelöst. Die Ergebnisse würde ich gerne in eine Variable schreiben und dies dann später in eine Mail verschick Geschichte packen. Leider bekomme ich das mit der Variable in der foreach nicht hin weil mir die Variable immer überschrieben wird.

    $Liste = "user1","user2"
    
    foreach ($user in $Liste){
    
    $variable = Get-ADUser -Properties * -Filter {Name -eq $user} | select name, surname 
    
    }
    
    #Aufruf der Variable leider nur mit dem letzten User 2 
    $variable

    Hoffe ihr könnte mir schnell helfen.

    Dienstag, 17. Oktober 2017 10:08

Antworten

  • Jungs, macht's Euch doch nicht so schwer!  ;-)
    $Liste = 'user1','user2'
    $variable = foreach ($user in $Liste){
        Get-ADUser -Filter {Name -eq $user} |
            Select-Object name, surname 
    }
    $variable
    .... den Parameter -Properties * würde ich in dem Fall weglassen, weil Name und Nachname zum Standard-Output von Get-ADUser gehört. Vermutlich würde ich auch eher die Get-ADUser Abfrage etwas einschränken, damit Du nicht Dein GANZES AD durchhecheln musst. z.B. mit -SearchBase ....

    Best regards (79,108,97,102|%{[char]$_})-join''

    Dienstag, 17. Oktober 2017 11:26

Alle Antworten

  • Hallo,

    wenn man eine Variable in einer Schleife befüllt, dann ist das fast immer ein Array:

    $arr = @()
    
    foreach($a in $b)
    {
      $arr += irgendwas $a 
    }



    • Bearbeitet hpotsirhc Dienstag, 17. Oktober 2017 10:37
    Dienstag, 17. Oktober 2017 10:37
  • Ínhalte verknüpfen:
    $variable = $variable + ....

    Es wird automatisch erkannt, dass es sich nicht um eine Addition sondern um eine Verkettung handelt, es sei denn, zwischendurch wäre im Inhalt eine Zahl. Dies müsste mit ToString() dann noch konvertiert werden.

    Dienstag, 17. Oktober 2017 10:41
  • Jungs, macht's Euch doch nicht so schwer!  ;-)
    $Liste = 'user1','user2'
    $variable = foreach ($user in $Liste){
        Get-ADUser -Filter {Name -eq $user} |
            Select-Object name, surname 
    }
    $variable
    .... den Parameter -Properties * würde ich in dem Fall weglassen, weil Name und Nachname zum Standard-Output von Get-ADUser gehört. Vermutlich würde ich auch eher die Get-ADUser Abfrage etwas einschränken, damit Du nicht Dein GANZES AD durchhecheln musst. z.B. mit -SearchBase ....

    Best regards (79,108,97,102|%{[char]$_})-join''

    Dienstag, 17. Oktober 2017 11:26