none
Fehlende Informationen bei der Ausgabe der Varibalen RRS feed

  • Frage

  • Hallo,

    ich habe ein Phänomen das ich mir nicht erklären kann.

    Ich habe mir ein Script geschrieben um mir auf die schnelle verschieden AD-Informationen anzuzeigen.

    Um es etwas einfacher (für euch) zu machen habe ich Variable A und B erstellt.Auch ohne die Variablen ist das Verhalten gleich

    Daher mein Erklärungsversuch mit den Variablen

    $OU = "OU=User,OU=Abteilungen,OU=standort,DC=standort,DC=firma,DC=intern" 
    
    $User =Get-ADUser -Filter {(Enabled -eq $True) -and (PasswordNeverExpires -eq $False)} -Properties PasswordLastSet ,pwdLastSet
    
    $A=$User|Where-Object -FilterScript {$_.pwdLastSet -ne "0"} |Select-Object Name,@{Name='Erstellungsdatum';e={$_.PasswordLastSet}},@{Name='Ablaufdatum';e={$_.PasswordLastSet.adddays($maxpasswortalter)}}|Where-Object {$_.Ablaufdatum -lt ($heute.AddDays(15))}|Sort-Object -Property Ablaufdatum
    
    $B=Search-ADAccount -AccountExpiring -TimeSpan 30.00:00:00 -SearchBase $OU |Select-Object -Property Name,AccountExpirationDate
    $A
    $B


    Bei der Ausgabe ist $A komplett und bei $B fehlt in der Ausgabe AccountExpirationDate

    Drehe ich die Variablen

    $B
    $A

    dann wird $B komplett angezeigt und bei $A habe ich nur Name als Ausgabewert

    Am Ende funktionieren beide aber nicht zusammen und das verstehe ich nicht.

    Kann mir das jemand erklären?!


    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!





    • Bearbeitet tonibert Donnerstag, 4. Februar 2016 10:44
    Donnerstag, 4. Februar 2016 08:53

Antworten

  • Und wenn Du die Ausgabe über Format-Table steuerst? Select-Object ist nicht zum Formatieren von Objekten gedacht und innerhalb einer Ausgabe kann die PowerShell, wenn nicht explizit gewählt, nur eine Formatierung wählen.

    $B | Format-Table -Property Name,AccountExpirationDate
    $A | Format-Table -Property Name,Erstellungsdatum,Ablaufdatum


    -Raimund

    • Als Antwort markiert tonibert Freitag, 5. Februar 2016 06:36
    Donnerstag, 4. Februar 2016 22:56

Alle Antworten

  • Moin,hab in PS4.0 das gleiche Verhalten. Es ist auch egal ob man es in der Konsole oder ISE ausführt. Allerdings scheint es nur ein Problem mit der Anzeige/Ausgabe zu geben, die Eigenschaften der beiden Objekte sind vorhanden. Hier noch ein etwas vereinfachteres Beispiel:

    $User = Get-ADUser -Identity 'TestUser' -Properties PasswordLastSet | Select-Object Name, PasswordLastSet
    $Computers = Get-ADComputer -Filter {(Name -like 'TestComputer*')} -Properties OperatingSystem | Select-Object -Property Name, OperatingSystem
    
    $User
    $Computers
    
    $User |Out-GridView
    $Computers |Out-GridView

    Auf der Konsole scheint das erste Objekt die Eigenschaften vorzugeben ($User), selbst wenn das zweite Objekt ($Computer) weitere Eigenschaften hat, werden diese nciht angezeigt.

    Gibt man das ganze getrennt mit z.b. Out-GridView aus, sind wieder alle Eigenschaften vorhanden.

    Wenn du unbedingt die Augabe auf der Konsole haben willst, könntest du als workaround folgendes machen:

    $User = Get-ADUser -Identity 'TestUser' -Properties PasswordLastSet | Select-Object Name, PasswordLastSet, OperatingSystem
    $Computers = Get-ADComputer -Filter {(Name -like 'TestComputer*')} -Properties OperatingSystem | Select-Object -Property Name, OperatingSystem
    
    $User
    $Computer

    Alle benötigten Eigenschaften der nachfolgenden Objekte in das erste Objekt schreiben (OperatingSystem in disem Fall), dann wird das Feld auch dargestellt.

    Donnerstag, 4. Februar 2016 11:49
  • Hallo psott,

    danke für deine Hilfe.Da mein Script noch andere Informationen enthält würde der Workarround mir nur bedingt helfen.Es wäre aber für die Dokumentation und die Lesbarkeit aber leider nicht der schönste Weg.

    Ist das nun ein Bug oder ein Feature!? Ich verwende ebenfalls PSV 4.0.

    Wenn ich den Inhalt des Scipts kopiere und in eine PowerShell Konsole kopiere bekomme ich sogar die Ergebnisse die ich haben möchte.


    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!

    Donnerstag, 4. Februar 2016 12:40
  • Hat noch jemand eine Idee oder kann es nachstellen?

    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!

    Donnerstag, 4. Februar 2016 20:12
  • Und wenn Du die Ausgabe über Format-Table steuerst? Select-Object ist nicht zum Formatieren von Objekten gedacht und innerhalb einer Ausgabe kann die PowerShell, wenn nicht explizit gewählt, nur eine Formatierung wählen.

    $B | Format-Table -Property Name,AccountExpirationDate
    $A | Format-Table -Property Name,Erstellungsdatum,Ablaufdatum


    -Raimund

    • Als Antwort markiert tonibert Freitag, 5. Februar 2016 06:36
    Donnerstag, 4. Februar 2016 22:56
  • Danke Raimund!

    Das ist es...

    Danke auch an psott!


    Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!

    Freitag, 5. Februar 2016 06:38