- ベストアンサー
ExcelでWindowsのイベントログを取得したい
最近システム管理関係の業務を行うことになりまずは手始めにイベントログのエラー監視をすることになりました。 そこでExcel2003でWindowsのイベントログの内容を取得するマクロを用意したいのですが、どこかに良いサンプルはありませんでしょうか?
- mi1010
- お礼率100% (2/2)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim W, C, T, P, N, V, I, X Set W = GetObject("winmgmts:\\.\root\cimv2") Set C = W.ExecQuery("SELECT * FROM Win32_NTLogEvent" _ & " WHERE Type='エラー'") 'エラーのみ収集 For Each T In C For Each P In T.properties_ N = P.Name V = P.Value X = -1 If P.IsArray Then On Error Resume Next X = UBound(P.Value) On Error GoTo 0 End If If X < 0 Then Debug.Print N; ": "; V Else For I = 0 To X Debug.Print N; "("; CStr(I); "): "; V(I) Next End If Next Next プロパティ名と内容がイミディエイトウィンドウに出力されます。 TimeGenerated、TimeWritten は日付なので、次の方法で変換します。 Dim S Set S = CreateObject("WbemScripting.SWbemDateTime") S.Value = T.TimeGenerated その後、Sの各プロパティを参照します。(下記参照) Year,Month,Day,Hours,Minutes,Seconds,Microseconds 実行するユーザはイベントログを扱う権限が必要です。
その他の回答 (1)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
このあたりでいかがでしょうか? http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb10.mspx
お礼
WMIの便利さがわかりました。 ありがとうございました。
関連するQ&A
- WINDOWS2008でイベントログでエラーと警告
windows2008の再起動時、イベントビューアのWINDOWSログのシステムにエラーと警告が出るようになりました。購入当初は出ていなかったのですが・・・ 解決方法ご存知の方教えてください。 WINDOWS EDITION ・WINDOWS2008 SERVER STANDARD SP2 SYSTEM ・1.8GHZ 1.5GB RAM 64BIT イベントログの出るタイミング ・システム再起動時 エラーと警告内容 ・エラー チャネル SYSTEMのログ出力リソースの初期化中に、イベントログサービスでエラー(RES=5) が発生しました ・警告 チャネル SYSTEM用のログファイルを開くときに、イベントログサービスでエラー(RES=5)が発生しました。既定のログファイル %SystemRoot%\System32\Winevt\Logs\System.evtxを使用して再実行します。 以上
- 締切済み
- SE・インフラ・Webエンジニア
- イベントログのメッセージをポップアップで出したい
windows server2012r2で、 イベントログにてエラーが発生した際に、内容をメッセージボックスを出したいのですがどうすればよいでしょうか。 タスクスケジューラで、 イベント発生時にmsgboxのバッチを起動する形で、引数にイベントログの内容を入れることで実現しようとしたのですが、タスクスケジューラの引数にイベントログの内容を渡す方法はわからず… 何かよい案があれば教えてください。
- 締切済み
- Windows系OS
- イベントログ(システム)について
お世話になります。 Windows(XP)のイベントログ(システム)で、ソースがFTdiskのイベントIDが15のログについて、詳細(メッセージ内容など)を教えていただきたいです。。 もしくは、そういったソースやID毎のログの詳細内容などの一覧表みたいな物を確認できるサイトは存在しますでしょうか。もしご存知でしたら、そちらも併せて教えていただきたいです。。 申し訳ないですがよろしくお願いします。
- ベストアンサー
- Windows系OS
- バッチでイベントログ出力したい
バッチでイベントログ出力したい Windows2003でバッチファイルにてコマンドを実行し、エラーの場合は イベントログに出力したいと考えています。 ERRORLEVELを判定してエラーなら eventcreate /ID 100 /L system /SO Cmd /T ERROR /D "エラーメッセージ" のようにeventcreateコマンドを実行するようにしています。 この"エラーメッセージ"の部分を実際のコマンド実行時のエラーメッセージを 入れ込みたいのですが複数行入れる方法がないか教えてください。 コマンド 2> file.log のようにエラーを出力してそれをfor文で読み込んでいこうとしたのですが 変数に複数行入れることができず、上手くいきません。 何か良い方法があれば教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- [Hinemos]サービス・イベントログ監視機能
こんにちは、お世話になります。7 この度サーバーの管理ソフト「Hinemos」を試験運用しているのですが、 以下の設定方法が分からず困っております。 監視対象のサーバ(Windows 2008 R2) (1)イベントログに指定したレベルの障害を検出する。 ”監視設定”にて”システムログ監視”を作成し、検出キーワードに .*down*. などを入れた状態でLANを抜くなどして警告を出してみているのですが、監視[イベント]画面には何も表示されませんでした。 (2)Windowsのサービスの生死確認を検出する。 ”監視設定”にて”Windows サービス監査”を作成し、監視キーワードを幾つか設定してみたのですが、 監視[イベント]画面には「Unknown error .facilityId = "監視対象のfacilityId名"」と表示されてしまいます。 上記二点の設定方法を教えていただきたいですが、何か設定方法などが記載されたHPなどがありましたら教えていただけませんでしょうか? 参考資料としては公式のマニュアルを見ております。
- ベストアンサー
- その他(ITシステム運用・管理)
- Excel 2010 VBA の変な異常終了
Excel VBA で 今まで いろんなマクロを作ってきましたが、今回 新しく購入したパソコン(Windows 7 Excel2010 本体メモリー8GB) で繰り返しのあるマクロを作成しましたが、3回目でピーと音がして エラーメッセージを出さずに異常終了する変なエラーが発生しました。 そこで Msgbox で 2回ごとに 確認メッセージで中断するようにすると、 正常に動作します。 また このマクロを 別のパソコン(Windows XP Excel 2003)用に 拡張子 XLS に 変換して実行すると、Msgbox で 中断しなくても、正常に動きます。 Windows7 Excel2010 のパソコンでは これとは別のマクロでも、同じような 変に異常終了するエラーを数回経験しています。 どうも少し長いマクロや、繰り返しの数回目で発生したりするようです。 教えてGoo の質問には Excel 2003で作成したマクロがExcel 2010で エラーになる質問が多くありますが、今回のエラーは、Excel2010 で作成した マクロであり、Msgbox で 2回ごとに 中断すれば、Excel2010 でも正常に 動く事からも Excel 2003 との関係ではないようです。 2010になってパソコンの処理速度にVBA処理が間に合っていないでは? と思われるので、 Wait命令を入れて5秒ほど待つようにしてもダメです。 また Windows7 になって 標準本体メモリー4GBでは Excel2010 の マクロには不足かと思い8GB に追加しましたがこれもダメでした。 最新のパソコンのスピードにExcelマクロが追い付いていないのか? マクロ処理用の 計算領域が不足(本体メモリーとは関係なく)? のような気がします。 現在は Msgbox で中断することで対応していますが、実際の繰返回数 は非常に多く何回も OKボタン を押す必要があり。困っています。 Excel 2010 になって同じようなエラー事例があるのではないでしょうか? 対応法があれば是非教えてください。 (エラー確認用に、マクロ、関係サンプルデータが必要であれば添付します)
- 締切済み
- オフィス系ソフト
- EXCEL VBA で現在開いているブックのファイル名を取得する方法
EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。 作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。 このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。 常にファイル名を取得出来るVBAをどなたか、教えて下さい。
- ベストアンサー
- その他(ビジネス・キャリア)
- イベントログの読み込み
すみません。 教えてくださいませ。 早速ですが、Vc++でイベントログを取得するプログラムを作成しているのですが、うまくいきません。 [ソース] DWORD BufSize; DWORD ReadBytes; DWORD NextSize; DWORD EventNum; BOOL bResult; HANDLE hEventLog = NULL; HGLOBAL hDIB; try{ /* イベントログのオープン */ hEventLog = ::OpenEventLog(NULL, "Application"); if(hEventLog == NULL){ eMsg = "ファイルオープンエラー"; return -1; } /* イベントログの最大数 */ bResult = GetNumberOfEventLogRecords(hEventLog, &EventNum); for(;;){ //最大サイズを取得 BufSize = 1; hDIB = GlobalAlloc(GMEM_FIXED, BufSize); bResult = ::ReadEventLog(hEventLog,EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ,0,hDIB,BufSize,&ReadBytes,&NextSize); if(!bResult && GetLastError() != ERROR_INSUFFICIENT_BUFFER) { eMsg = "ファイルリードエラー"; CloseEventLog(hEventLog); GlobalFree(hDIB); return -1; } GlobalFree(hDIB); hDIB = NULL; BufSize = NextSize; hDIB = ::GlobalAlloc(GMEM_FIXED, BufSize); bResult = ::ReadEventLog(hEventLog,EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ,0,hDIB,BufSize,&ReadBytes,&NextSize); if(!bResult){ eMsg = "ファイルリードエラー"; CloseEventLog(hEventLog); GlobalFree(hDIB); return -1; } } }catch(CException* e){ if(hEventLog != NULL){ eMsg = (LPCTSTR)e; CloseEventLog(hEventLog); } } GlobalFree(hDIB); return 1; [内容] 正常にコンパイルはするのですが、実行後エラーが出力されます。"ファイルリードエラー"(エラー文) メモリの確保がうまくいっていないのでしょうか?
- 締切済み
- C・C++・C#
- イベントログについて
※質問用テンプレートを使って質問しています <環境情報> ■製品名【 MFC-J6997CDW 】 ■PSのOS【 Windows7】 (関連あれば) <症状> ■どうなったのか詳しく教えてください 【 接続したパソコンから下記のイベントログが秒単位で出続けています。 - System - Provider [ Name] Brother BrLog - EventID 1001 [ Qualifiers] 49152 Level 2 Task 0 Keywords 0x80000000000000 - TimeCreated [ SystemTime] 2021-06-08T00:06:41.000000000Z EventRecordID 65943587 Channel Application Computer SMI53052.hakuihsp.local Security - EventData STI BrtSTI: [2021/06/08 09:06:41.596]: [00002012]: FindPushAwareAppName:: Invalid Arg 接続した端末のドライバーかアプリケーションと思われますが、具体的にマニュアルなどに 記載していないので、説明に苦慮してます。 なんのエラーでどのような設定で停止するか教えてください。 】 ※OKWAVEより補足:「ブラザー製品」についての質問です。
- 締切済み
- プリンター・スキャナー
- Excel2003でのマクロをExcel2010で
Excel2003で動くことを確認されているマクロが組み込まれているスプレッドシートをExcel2010で使おうとすると以下のエラーメッセージが出ます。 「コンパイルエラー プロジェクトまたはライブラリが見つかりません」 そしてマクロのコードが表示されます。 Excel2010を擬似的にExcel2003に変更してこのプログラムを使いたいと考えています。やり方を教えてください。 なおWindows7です。
- ベストアンサー
- その他(インターネット・Webサービス)
お礼
お返事が遅くなりました。ありがとうございました。 サンプルを頂いたあといろいろ調べてみたらWMI Fun (http://www.wmifun.net/)というサイトを見つけてこちらもみながら勉強しています。