任意のオブジェクトを作成する(2)
任意のオブジェクトを作成する(1) - PowerShell Memoの続きです。
「System.Management.Automation.MshObject」に任意のプロパティやメソッドを追加することで、任意のオブジェクトを作成することができます。
MshScriptPropertyは[ScriptBlock]としてプロパティを定義します。
[ScriptBlock]に計算式を含めることで、他のプロパティの値に連動して値が変換するプロパティを作成できます。
プロパティの追加(MshScriptProperty)
以下のサンプルでは「value(MshNoteProperty)」の値を3倍した値を持つ、「NewScriptProperty(MshScriptProperty)」を追加しています。
MSH C:\> $o = new-object Management.Automation.MshObject MSH C:\> $value = [int]10 MSH C:\> $p = new-object Management.Automation.MshNoteProperty ` "value", $value MSH C:\> $script = {$this.value * 3} MSH C:\> $sp = new-object Management.Automation.MshScriptProperty ` "NewScriptProperty", $script MSH C:\> $o.MshObject.Members.Add($p) MSH C:\> $o.MshObject.Members.Add($sp) MSH C:\> $o value NewScriptProperty ----- ----------------- 10 30 MSH C:\> $o.value = 15 MSH C:\> $o value NewScriptProperty ----- ----------------- 15 45