任意のオブジェクトを作成する(1)

「System.Management.Automation.MshObject」に任意のプロパティやメソッドを追加することで、任意のオブジェクトを作成することができます。

プロパティの追加(MshNoteProperty)

以下のサンプルでは「String」型と「int」型のプロパティを追加しています。

MSH C:\> $o = new-object Management.Automation.MshObject
MSH C:\> $value1 = "TEST"
MSH C:\> $value2 = [int]100
MSH C:\> $p1 = new-object Management.Automation.MshNoteProperty `
>> "NewProperty1", $value1
>> $p2 = new-object Management.Automation.MshNoteProperty `
>> "NewProperty2", $value2
>> $o.MshObject.Members.Add($p1)
>> $o.MshObject.Members.Add($p2)
>>
MSH C:\> $o

NewProperty1  NewProperty2
------------  ------------
TEST                   100

MSH C:\> $o | gm

    TypeName: System.Management.Automation.MshCustomObject

Name         MemberType   Definition
----         ----------   ----------
Equals       Method       System.Boolean Equals(Object obj)
GetHashCode  Method       System.Int32 GetHashCode()
GetType      Method       System.Type GetType()
ToString     Method       System.String ToString()
NewProperty1 NoteProperty System.String NewProperty1=TEST
NewProperty2 NoteProperty System.Int32 NewProperty2=100