h41msh1c0r
Goto Top

Powershell Zugriff auf Wert in Propertylist einer SOAP Rückgabe

Aloa in die Runde,

ich knabber mir gerade über die Brückentage die Finger wund.

Die störrische ObjectList einer SOAP Abfrage will sich nicht so zerlegen lassen.

Ein Ergebnisobjekt:
GroupType        : Object
StateRevCounter  : 1
SchemaTag        : Computer
PropGroupList    : {Microsoft.PowerShell.Commands.NewWebserviceProxy.Autogenera
                   tedTypes.WebServiceProxy1dministrationService_asmx_WSDL.MdsP
                   ropGroup, Microsoft.PowerShell.Commands.NewWebserviceProxy.A
                   utogeneratedTypes.WebServiceProxy1dministrationService_asmx_
                   WSDL.MdsPropGroup, Microsoft.PowerShell.Commands.NewWebservi
                   ceProxy.AutogeneratedTypes.WebServiceProxy1dministrationServ
                   ice_asmx_WSDL.MdsPropGroup}
IDProvider       : 
BasePropGroupTag : 
Name             : TestServer
ParentContID     : 
Description      : 
IsSystem         : False
IsReadOnly       : False
UniqueID         : 
ID               : 5772
GenTypeData      : Microsoft.PowerShell.Commands.NewWebserviceProxy.Autogenerat
                   edTypes.WebServiceProxy1dministrationService_asmx_WSDL.MdsGe
                   nType

Jetzt habe ich hier einen Sack dieser Objekte und brauche vorerst aber nur 1 Wert pro Objekt, die etwas tief vergraben sind.
Der Gedanke pro Objekt Name und den gewünschten Wert erstmal anzeigen lassen und danach ein Ergebnissatz zusammenbauen.

$return.ObjectList | % {
    $_
    $_.PropGroupList[2].PropertyList
}

Das zeigt mir schonmal die PropertyList an in der Wert1 mit "AAA" steckt.

GroupType        : Object
StateRevCounter  : 1
SchemaTag        : Computer
PropGroupList    : {Microsoft.PowerShell.Commands.NewWebserviceProxy.Autogenera
                   tedTypes.WebServiceProxy1dministrationService_asmx_WSDL.MdsP
                   ropGroup, Microsoft.PowerShell.Commands.NewWebserviceProxy.A
                   utogeneratedTypes.WebServiceProxy1dministrationService_asmx_
                   WSDL.MdsPropGroup, Microsoft.PowerShell.Commands.NewWebservi
                   ceProxy.AutogeneratedTypes.WebServiceProxy1dministrationServ
                   ice_asmx_WSDL.MdsPropGroup}
IDProvider       : 
BasePropGroupTag : 
Name             : TestServer
ParentContID     : 
Description      : 
IsSystem         : False
IsReadOnly       : False
UniqueID         : 
ID               : 5772
GenTypeData      : Microsoft.PowerShell.Commands.NewWebserviceProxy.Autogenerat
                   edTypes.WebServiceProxy1dministrationService_asmx_WSDL.MdsGe
                   nType

TypedValue : AAA
Tag        : Wert1
Type       : String

Wenn ich nun aber versuche mit den Namen + Window auszugeben mit:
$return.ObjectList | % {
    $_.Name
    $_.PropGroupList[2].PropertyList.Wert1
}

bekomme ich nur die Namen ausgegeben.

An die Werte komme ich einzeln ran am Beispielobjekt Nr 3.

$return.ObjectList.Item(3).PropGroupList[2].PropertyList.Wert1

Der Zugriff ist doch der selbe oder sehe ich das falsch? Wo liegt hier der Knoten?

VG

Content-Key: 636039

Url: https://administrator.de/contentid/636039

Printed on: April 16, 2024 at 09:04 o'clock

Mitglied: 147069
Solution 147069 Dec 28, 2020 updated at 13:43:21 (UTC)
Goto Top
bekomme ich nur die Namen ausgegeben.
Der Wert steckt ja auch in der Property TypedValue nicht in "Tag" face-smile

TypedValue : AAA

Da ich hier das Object nicht vor mir habe, bspw.
$return.ObjectList | select GroupType,SchemaTag,Name,@{n='MeinTag';e={$_.PropGroupList[2].PropertyList | ?{$_.Tag -eq 'Wert1'} | select -Expand TypedValue}}
Member: H41mSh1C0R
H41mSh1C0R Dec 28, 2020 at 14:20:49 (UTC)
Goto Top
*gnarf* + Danke läuft