2

Windows イベント ログのエントリを JSON に変換したいと考えています。しかし、いくつかのフィールドを事前にフォーマットしたいと思います。ForEach-Object を使用することは私にとって自然な決定のように見えますが、そこで属性を変更しようとすると、次のようになります。

Get-EventLog System -Newest 2 | % { $_.EntryType = "$($_.EntryType)" } | ConvertTo-Json

エラーが発生します:

'EntryType' is a ReadOnly property.

$_ オブジェクトの書き込み可能なコピーを作成したり、JSON に変換する前にオブジェクトを事前にフォーマットするにはどうすればよいですか?

4

1 に答える 1

2

Select-Object を使用して、必要なことを実行できるはずです。Select-Object は、カスタマイズ可能なまったく新しいオブジェクト (PSCustomObject 型) を作成します。実際に必要なプロパティを制限したり、独自の計算プロパティを定義したりすることもできます。

計算されたプロパティの詳細については、この記事を参照してください。

Get-EventLog System -Newest 2 |
    Select-Object Index, Time, Source, InstanceID, @{Name='MyEntryType';Expression={$_.EntryType } } |
    ConvertTo-Json
于 2014-06-02T17:51:47.533 に答える