2017-11-20 12 views
-3

3つのアクティブディレクトリグループからアカウントの詳細を取得するハッシュテーブルを作成するスクリプトが1つあります。それはうまく働いて、私が$hashと呼んだときに私は正確な出力を得ています。私は、イベントログMSGで同じ出力を入れてみましたしかし、...ログMSGはこのイベントログメッセージに出力を保存するスクリプト

System.Collections.Specialized.OrderedDictionary

$hash = [ordered]@{ 
    Enterpriseadmin = get-adgroup -filter * -searchbase 'cn=enterprise Admins,cn=users,dc=abc,dc=net' -properties name, members | select name, @{n=’Members’; e= { ($_.members | % { (Get-ADObject $_).Name }) -join “,” }} | Sort-Object -Property Name 
    Schemaadmin = get-adgroup -filter * -searchbase 'cn=schema Admins,cn=users,dc=abc,dc=net' -properties name, members | select name, @{n=’Members’; e= { ($_.members | % { (Get-ADObject $_).Name }) -join “,” }} | Sort-Object -Property Name 
    DomainAdmin = get-adgroup -filter * -searchbase 'cn=domain Admins,cn=users,dc=abc,dc=net' -properties name, members | select name, @{n=’Members’; e= { ($_.members | % { (Get-ADObject $_).Name }) -join “,” }} | Sort-Object -Property Name 
} 

のように見えた私は、ハッシュテーブルを保存しようとしました変数に出力し、$ msg = $ hashのようにmsgで使用しますが、イベントログメッセージで同じ出力を使用します。

New-eventlog -logname Application -Source "ascript" 
Write-EventLog -LogName "Application" -Source "aScript" -EventId 123 -EntryType Information -Message $hash 

ここに何か不足していますか?どのようにこのメッセージを出力に変換するのですか?

+0

'$ hash'は複雑なオブジェクトです。 Powershellはオブジェクトの 'ToString()'メソッドを呼び出して表示します。表示されているタイプのみを表示するため、PowerShellでは、表示したいもの以外のものやレンダリング方法を予測できません。あなたはそれをする方法を伝える必要があります。期待される出力はどのように見えますか? – Matt

+0

名前値 __ __ Enterpriseadmin @ {name = Enterpise admins;メンバー=}: - これは、私のスクリプトで指定した3つのグループすべてを含む表形式で! –

答えて

0

ありがとうございました。 イベントログに出力を投稿する方法を見つけました。 $ body = $ hash.getenumerator()|フォーマット表| out-string 次に、write-eventlogコマンドに-messageの後に$ bodyを置くだけで、出力はイベントログメッセージに記録されます。

関連する問題