none
prüfen ob object zurückkommt? RRS feed

  • Frage

  • Hallo zusammen,

    bin ein Powershell Neuling und hätte eine Frage.

    die meisten Verständnisprobleme und fehler beim testen gibt es für Neulinge da manchmal ein Objekt oder ein String zurückgeliefert wird. Und je nachdem was zurückkommt muss man es natürlich anders behandeln.

    Beispiel:

    $User = Get-ADGroupMember -Identity TEST -recursive 
    $User = Get-ADGroupMember -Identity TEST -recursive  | ft SamAccountName

    und daher geht manchmal $User. SamAccountName (Parameter) und manchmal nicht! Also nur $user und das ist für Neulinge schwer zu verstehen.

    wie macht ihr das. Gibt es eine einfache Möglichkeit beim Troubleshooten zu überprüfen ob ein Objekt oder String zurückkommt?

    Umgebung:

    Server 2008 - mitgelieferte Powershell


    Chris



    Freitag, 3. April 2015 06:22

Antworten

  • Ein String ist auch ein Objekt, nur eben vom Typ String.

    Wenn Du Dir nicht klar bist, was für ein Objekt ausgegeben wird, dann das Resultat einfach in Get-Member pipen. Genau für diesen Zweck wurde Get-Member bereitgestellt.

    Für den Anfang könnte auch das hier recht hilfreich sein: Program: Interactively View and Explore Objects.

    Und nach der Benutzung von Format-* Befehlen hast Du ohnehin keine verwertbaren Daten mehr. Format-* sollte in der Regel in Scripts nicht benutzt werden.


    -Raimund

    • Als Antwort markiert -- Chris -- Dienstag, 7. April 2015 05:42
    Freitag, 3. April 2015 10:09
  • Wenn Du wirklich nur den Objelt Typ sehen möchest und nicht die Flut von Informationen, die Get-Member in der Regel liefert, kann das hier noch helfen:

    $a = Get-Date
    $a.GetType().FullName


    -Raimund

    • Als Antwort markiert -- Chris -- Dienstag, 7. April 2015 05:41
    Freitag, 3. April 2015 10:11

Alle Antworten

  • Ein String ist auch ein Objekt, nur eben vom Typ String.

    Wenn Du Dir nicht klar bist, was für ein Objekt ausgegeben wird, dann das Resultat einfach in Get-Member pipen. Genau für diesen Zweck wurde Get-Member bereitgestellt.

    Für den Anfang könnte auch das hier recht hilfreich sein: Program: Interactively View and Explore Objects.

    Und nach der Benutzung von Format-* Befehlen hast Du ohnehin keine verwertbaren Daten mehr. Format-* sollte in der Regel in Scripts nicht benutzt werden.


    -Raimund

    • Als Antwort markiert -- Chris -- Dienstag, 7. April 2015 05:42
    Freitag, 3. April 2015 10:09
  • Wenn Du wirklich nur den Objelt Typ sehen möchest und nicht die Flut von Informationen, die Get-Member in der Regel liefert, kann das hier noch helfen:

    $a = Get-Date
    $a.GetType().FullName


    -Raimund

    • Als Antwort markiert -- Chris -- Dienstag, 7. April 2015 05:41
    Freitag, 3. April 2015 10:11