質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

2回答

3315閲覧

PowershellでイベントログをGETして整形したい

Aiii

総合スコア10

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

1クリップ

投稿2018/12/11 03:39

前提・実現したいこと

コマンドプロンプトからPowerShellコマンドでイベントログを出力して,
Messagesを改行なしにしたいです。

エラー解消法が分からず,
メソッド呼び出しの()がどの部分なのかが具体的に分かりません。

どなかたご教授くださいますでしょうか。。。

発生している問題・エラーメッセージ

メソッド呼び出し内に ')' が存在しません。
+ CategoryInfo : ParserError: (CloseParenToken:TokenId) []、ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInMethodCall

該当のソースコード

powershell -Command "Get-EventLog -Logname Application -EntryType Error,Warning,FailureAudit | Select-Object TimeGenerated,EntryType,UserName,EventID,@{Name="Message";Expression={$_.Message.Replace("\n",";")}} | Export-CSV -Encoding Default C:\temp\APPlog.csv"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

コマンドプロンプト→PowerShell -Command へ文字列が渡される過程で"が消えたりすることが原因だと思われますが、特定が少々大変ですね。

今回に限って言えば、文字列を"ではなく、'で囲む、"`n"[char]10で置き換える、で通るようになりました。

cmd

1powershell -Command "Get-EventLog -Logname Application -EntryType Error,Warning,FailureAudit | Select-Object TimeGenerated,EntryType,UserName,EventID,@{Name='Message';Expression={$_.Message.Replace([char]10,';')}} | Export-CSV -Encoding Default C:\temp\APPlog.csv"

あるいは、-EncodedCommandを使ってBase-64 エンコードの文字列のコマンドを指定してもよいかもしれません。

powershell

1# Base-64 変換 2[string]$cmdTxt =@' 3Get-EventLog -Logname Application -EntryType Error,Warning,FailureAudit | Select-Object TimeGenerated,EntryType,UserName,EventID,@{Name="Message";Expression={$_.Message.Replace("\n",";")}} | Export-CSV -Encoding Default C:\temp\APPlog.csv 4'@ 5 6[convert]::ToBase64String( 7 [System.Text.Encoding]::Unicode.GetBytes($cmdTxt) 8)

cmd

1powershell -EncodedCommand RwBlAHQALQBFAHYAZQBuAHQATABvAGcAIAAtAEwAbwBnAG4AYQBtAGUAIABBAHAAcABsAGkAYwBhAHQAaQBvAG4AIAAtAEUAbgB0AHIAeQBUAHkAcABlACAARQByAHIAbwByACwAVwBhAHIAbgBpAG4AZwAsAEYAYQBpAGwAdQByAGUAQQB1AGQAaQB0ACAAfAAgAFMAZQBsAGUAYwB0AC0ATwBiAGoAZQBjAHQAIABUAGkAbQBlAEcAZQBuAGUAcgBhAHQAZQBkACwARQBuAHQAcgB5AFQAeQBwAGUALABVAHMAZQByAE4AYQBtAGUALABFAHYAZQBuAHQASQBEACwAQAB7AE4AYQBtAGUAPQAiAE0AZQBzAHMAYQBnAGUAIgA7AEUAeABwAHIAZQBzAHMAaQBvAG4APQB7ACQAXwAuAE0AZQBzAHMAYQBnAGUALgBSAGUAcABsAGEAYwBlACgAIgBcAG4AIgAsACIAOwAiACkAfQB9ACAAfAAgAEUAeABwAG8AcgB0AC0AQwBTAFYAIAAtAEUAbgBjAG8AZABpAG4AZwAgAEQAZQBmAGEAdQBsAHQAIABDADoAXAB0AGUAbQBwAFwAQQBQAFAAbABvAGcALgBjAHMAdgA=

投稿2018/12/11 12:55

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラーを解消したいだけでしたら以下でcsv作成はできましたがいかがでしょうか。

powershell -Command Get-EventLog -Logname Application -EntryType Error,Warning,FailureAudit | Select-Object TimeGenerated,EntryType,UserName,EventID,@{Name="Message";Expression={$_.Message.Replace("\n",";")}} | Export-CSV -Encoding Default -path "C:\temp\APPlog.csv"

投稿2018/12/11 11:03

orx013mk5

総合スコア123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

orx013mk5

2018/12/12 14:35

大変失礼しました。[コマンドプロンプトから~]の部分を完全に読み飛ばしました。本回答は回答となっていませんので無視して頂きたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問