2016-07-18 5 views
1

私はSSRS Webサービスに対してクエリから取得したPowerShellでこのオブジェクト持っている:私は$ DSをリストする場合Powershellオブジェクトからプロパティ情報を取得するには?

$ds|gm 


TypeName: Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3tServer_ReportService2010_asmx.DataSource 

Name  MemberType Definition 
----  ---------- ---------- 

Equals  Method  bool Equals(System.Object obj)      
GetHashCode Method  int GetHashCode() 
GetType  Method  type GetType() 
ToString Method  string ToString() 
Item  Property Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3tServer_ReportService2010_asmx.DataSourceDe... 
Name  Property string Name {get;set;} 

は、オブジェクト:私は必要なもの

$ds|fl 

Name : AHPUsersData 
Item : Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3tServer_ReportService2010_asmx.DataSourceReference 

は」の値であり、 「Item」に格納されているオブジェクトのタイプと実際には見える「Item」。私は新しいオブジェクトに$ ds.Itemを割り当てようとしましたが、それはPowershellカスタムオブジェクトに変わり、その情報はすべて消え去ります。私はGetTypeのさまざまな組み合わせを試してみましたが、成功しませんでした。 「DataSourceReference」の文字列である

Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy3tServer_ReportService2010_asmx.DataSourceReference

:最終的には私が必要なものの最後の部分です。この部分は "DataSourceReference"または "DataSourceDefinition"の2つの値を持つことができ、次に実行するコードを決定するためにはそれをテストする必要があります。

Powershellに対する相対的な初心者で、これは私のために少し鈍いです。どんな助けでも大歓迎です。

+0

'$ DSを何| select -expand Item' return?を選択します。 –

+0

完璧!私はそれをフラグすることができるように回答として投稿したいですか? –

+0

それがうまくいった:) –

答えて

0

だけSelect-ObjectItemを展開します。

$ds | select -expand Item 
0

私はあなたが必要なものを正確に知りませんが、あなたはまた、次のように独自のカスタムPSCustomObjectを作成することができます。あなたが好きなものをすることができ、その後、PropertyValuePropertyNameとを選択するには、最初に

[PSCustomObject]@{ 
    Name    = $ds.Name 
    DataSourceReference = $ds.Item.DataSourceReference 
    SomethingElse  = $ds.Item | Select-Object -ExpandProperty DataSourceReference 
} 

。うまくいけば、これはあなたを助けます。

関連する問題