問題タブ [get-eventlog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - Powershell Get-EventLog が RemoteComputer でハングする
以下はローカル コンピューターで正常に実行されますが、-ComputerName "myRemoteName" を入力するとハングし、約 5 分経過しても何も返されません。しかし、プログラムはまだ実行されているようです。
「ワイヤ」を介して大量のデータパケットを返そうとしていますか? 理論的には、リモート コンピューターで過去 2 時間に 10 件未満のエラーが発生しているはずです。
その後のコードは、電子メールを作成して送信します...
Get-WinEvents への切り替えを提案する他の投稿を見たことがありますが、書き直すのに 1 時間か 2 時間かかると思います (Powershell の経験がないため)。私が上に持っているものは、ローカルコンピューターで正常に動作しています。
結論として、$minutes の範囲を変更しても、実際には応答時間には影響がないようです。どちらも遅いです。
powershell - Powershell Get-eventlog クエリ。基準を満たす X 個のエントリを返す方法
複数のサーバーの特定のイベント ID のリストの最新の発生を 1 つ見つけたいと考えています。これを行う良い方法がわかりません。スイッチを使用する場合は-newest
、各サーバーのイベント ログの相対的なサイズと、そのエントリ数内で関心のあるイベントが発生する可能性に基づいて、数をいじる必要があります。F6WINMSSTEST3
以下の例では、最初の 10,000 エントリに探しているものがサーバーにありません。これを行う良い方法を知っている人はいますか?
私が望むのは、サーバーごとに、探しているイベントの ID ごとに最新のエントリの単一のインスタンスをリストして、それらがいつ発生したかを確認できるようにすることです。完璧な世界では、各サーバーが最新の 3 つの ID をリストします。
出力例:
powershell - PowerShell で Get-EventLog を使用して、メッセージに 10 文字だけを表示するにはどうすればよいですか?
私は現在、以下のコードを持っています:
私の質問は、メッセージの最初の 10 文字を表示するにはどうすればよいですか?
json - Foreach-Object は、PowerShell で $_ の変更可能なコピーを作成します
Windows イベント ログのエントリを JSON に変換したいと考えています。しかし、いくつかのフィールドを事前にフォーマットしたいと思います。ForEach-Object を使用することは私にとって自然な決定のように見えますが、そこで属性を変更しようとすると、次のようになります。
エラーが発生します:
$_ オブジェクトの書き込み可能なコピーを作成したり、JSON に変換する前にオブジェクトを事前にフォーマットするにはどうすればよいですか?
powershell - Powershell Get-EventLog -before パラメーターが見つかりません
ここにこのコードスニペットがあります:
スクリプト全体を実行するローカル マシンがあり、100% 正常に動作します。このコードを Windows Server 標準でリモート デスクトップ経由で実行すると、次のようになります。
「Get-EventLog : パラメーター名 'before' に一致するパラメーターが見つかりません」それは「$errorCommand =" を参照しており、このパラメーターが見つからない理由を一生理解できません。私のパワーシェルで何かが正しく設定されていません。 ?
powershell - Powershell:イベントログのメッセージフィールドから時間を抽出するにはどうすればよいですか?
Powershell で Windows Sever 2008 マシンの予期しないシャットダウン時間を取得しようとしていますGet-EventLog
。EventID
6008のイベントを検索して のみを選択することで近づくことができますがmessage
、フィールド内で解析して、発生した時間 (イベントが発生した時間ではありません) を取得する必要があります。
使ってみたのですが、使用replacementstrings[x]
するフィールドの指定方法が分からず( messages
)、結果が得られません。
get-eventlog -LogName System -ComputerName svr-name | Where-Object {$_.EventID -eq 6008 -AND $_.timegenerated -gt (get-date).adddays(-30)}| select message
これを生成します:
arrays - Powershell: 配列をペアに分割し、交互でない場合は破棄する
Get-EventLog
イベント6005
、6006
、および6008
リモート サーバーの検索に使用する Powershell スクリプトがあります。少し操作した後、結果を配列で返します。
結果をループし、フィールドにdown
orを割り当てて、再度並べ替えます。up
$eventData.message
timegenerated
TimeGenerated EventID メッセージ インデックス
------------- ------- ------- ----- --------
8/3/2014 5 :30:02 AM 6006 ダウン 0 2014 年 8 月 3 日
5:30:47 AM 6005 アップ 0
2014 年 8 月 24 日 5:31:00 AM 6005 アップ 0
2014/8/31 2:34:59 AM 6008 ダウン 1
2014/8/31 5:30:04 AM 6006 ダウン 0
2014/8/31 5:30:59 AM 6005 アップ 0
2014/8/31 5:36 :26 AM 6005 アップ 0
TimeGenerated
これらの結果から新しい配列を作成し、上下のペアに配置するにはどうすればよいですか? 配列の最初のイベントが である場合は無視することをお勧めします (そのため、ペアにはup
常に存在します) が、これを回避することができます。上記の出力例のように、2 つの連続したorイベントが発生しないことがより重要です。down
up
down
up
イベントを反復処理して1
と0
(またはup
とdown
) の間で一時変数を切り替えることを考えていましたが、それは不格好なようで、何も機能しません。そんなに難しいことではないはずですが、それが私が助けを求めている理由です。より多くのコードを提供することが役立つかどうか教えてください。かなりの量があり、そのページを単にダンプしたくありませんでした。
これは、私が望む配列のフォーマットの例です。私が使用している方法では、これらのイベントを 12121212 としてペアにし、イベントの種類を調べません。up
したがって、上記の例では、2 つの(6005) イベントがあったため、最後のイベント ペアは存在しないダウンタイムを計算します。
powershell - PowerShell - 特定の文字の後にイベント ログからメッセージの部分文字列を出力する
PowerShell でイベント ログ メッセージの最後の行を表示する必要があります (":" の後のほぼすべてです。これを行うことができなかったので、別の方法として、メッセージと部分文字列を出力する必要があります。": " 私のメッセージの位置は 200 位です。以下のコードは、":" の後に 56 文字を表示します。
「:」以降のすべてを表示するにはどうすればよいですか?
役立つ場合のメッセージの例を次に示します。
ソース 'HELPME' のイベント ID '1234567890' の説明が見つかりません。メッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにないか、それらにアクセスする権限がない可能性があります。次の情報はイベントの一部です**:** 'Blah', 'Blahh', 'Blahhh'
時間と「Blah」、「Blahh」、「Blahhh」を表示するコードが必要です。