タイトルからわかるように、私はPowerShellを初めて使用しています。だから私の用語を許してください。PowerShell:複数のオブジェクトをCSVにエクスポートするConvertFrom-Json
シナリオ私はオフィス365「のオブジェクトの複数のセット」(?)、他のオブジェクトの配列を持っているそのうちの一つを返すSearch-UnifiedAuditLog
コマンドレットの監査ログを照会するPowerShellを使用しています
(?) 。この権利があれば、出力はJSONです。私は通常、(CSV形式にエクスポートAuditData
ラインの内容の一部をしたい、今すぐ
RunspaceId : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
RecordType : AzureActiveDirectoryStsLogon
CreationDate : 21/02/2017 12:05:23
UserIds : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Operations : UserLoggedIn
AuditData : {"CreationTime":"2017-02-21T12:05:23","Id":"{"ID":"00000000000000000","Type":3}],"ActorContextId":"xxxxxxxxxxxxxxxxxxxxxxxxx","ActorIpAddress":"xxxxxxxxxxxxx","InterSystemsId":"xxxxxxxxxxxxxxxxx","IntraSystemId":"000000000000-000000-000","Target":[{"ID":"00-0000-0000-c000-000000000000","Type":0}],"TargetContextId":"xxxxxxxxxxxxxxxxxx","ApplicationId":"xxxxxxxxxxxxxxxxxxxxxxxxxx"}
ResultIndex : 1
ResultCount : 16
Identity : xxxxxxxxxxxxxxxxxxxxxxxxxxx
IsValid : True
ObjectState : Unchanged
:ここ
は(私は1つは、「オブジェクトの集合」と呼んでます)が返されているものの一例ですここにコピーされたものよりもはるかに多くのデータを含む)。これは、1つの "オブジェクトのセット"(上記のような)に対してうまく機能します。これを行うために私が使用:1ではなく複数の「オブジェクトの集合」の$LogOutput = Search-UnifiedAuditLog -StartDate 2/20/2017 -EndDate 2/23/2017 -ResultSize 1
$ConvertedOutput = ConvertFrom-Json -InputObject $LogOutput.AuditData
$ConvertedOutput | Select-Object CreationTime,UserId,ClientIP | Export-Csv -Path "C:\users\some.user\desktop\users.csv
ResultSize
戻ります。 ResultSize
を削除した場合、ConvertFrom-Json
は機能しません。
そこで質問です:
はすべてを通して、私はループ「オブジェクトのセット」とJSONから変換し、このエクスポートされたライン・バイ・ラインCSV上を持つことができますか?
UserId,Activity,UserIP
[email protected], loggedIn, 10.10.10.10
[email protected], accessedFile, 11.11.11.11
教育的な回答は非常に高く評価されます。どうもありがとう!
から代わりに-ResultSize' 'のオブジェクトの残りの部分を無視します、'検索 - を使用してみてくださいを使用してみてくださいUnifiedAuditLog | Select-Object -ExpandProperty AuditData | ConvertFrom-Json' –
Eris
@Erisあなたは**天才です!**これは私が必要としていたものです。 AuditDataオブジェクトに焼き込まれたすべての詳細を含む、すべての監査イベントを含むcsvファイルを作成します。あなたのコメントを回答としてマークしようとしていたが、私はそれをすることができないことに気づいた。 – pontus