MSDNでs のクールなプロパティとメソッドについて聞いたときPSObject
、それらを試してみるのはクールだろうと思いました。
それが私がやったことです:
まず、型の新しいインスタンスを作成しましたPSObject
。
次に、 Get-Memberを使用してこれらすべてのクールなメンバーを探しました(しかし、それらは存在しませんでした)。
PS .> $plainObj = New-Object PSObject
PS .> $plainObj | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
問題:
BaseObject
プロパティもメソッドもありませんAsPSObject()
。かっこいいメンバーが全員いない。しかし、なぜ?
Get-Member は、オブジェクトの種類がではなく( TypeName
) であることを教えてくれます。そして、これらすべてのクールなメンバーがいるわけではありません。PSCustomObject
PSObject
PSCustomObject
しかし、私は一種になりたいのではなく$plainObj
、一種PSCustomObject
になりたいのですPSObject
。
私の質問:
atとして明示的に使用したのに、なぜ
$plainObj
a のようなものなのですか? 何か案が?PSCustomObject
PSObject
-TypeName
$plainObj New-Object PSObject
どうすれば一種ではなく
$plainObj
一種になることができますか?PSObject
PSCustomObject
@RussCあなたのスクリプトを使用しても-それが結果です:
PS .> $plainObj = New-Object PSObject -property @{ title = 'fridojet' }; $plainObj | Add-Member -MemberType NoteProperty -Name Colour -Value Blue PS .> $plainobj | Get-Member TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Colour NoteProperty System.String Colour=Blue title NoteProperty System.String title=fridojet
@RussC今、私は一種ではないオブジェクトを作成することができました
PSCustomObject
:PS .> New-Object Object
しかし、それでも、
PSObject
(BaseObject
プロパティなどを使用して)を作成することはできません。PS .> [PSObject]::AsPSObject((New-Object Object)) | Get-Member TypeName: System.Object Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString()