• 締切済み

VBSでeventquery.vbs

VBSにて、eventquery.vbsを使用したいと思ってます。 用件としては、 前日のEventLog取得 取得した情報を前日の日付.txtにて世代管理 をしたいと思っております。 実際の書式を教えてもらえればと思いますが 便利なサイトなどありましたら教えてもらえればと 思います。

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

とりあえず、こんな感じでしょうか。 Const P = "C:\~\" '★実際にファイルが置かれるパスにして下さい Dim T, S, Y, M, D, N Y = DateAdd("D", -1, Date) D = Right("0" & CStr(Day(Y)), 2) M = Right("0" & CStr(Month(Y)), 2) Y = CStr(Year(Y)) N = P & Y & M & D & ".txt" D = M & "/" & D & "/" & Y M = "cscript %systemroot%\system32\eventquery.vbs /FI """ M = M & "Datetime eq " & D & ",12:00:00AM-" & D & ",11:59:59PM""" Set T = CreateObject("Scripting.FileSystemObject").CreateTextFile(N, True) Set S = CreateObject("WScript.Shell").Exec(M).StdOut S.ReadLine: S.ReadLine: S.ReadLine Do Until S.AtEndOfStream     T.WriteLine S.ReadLine Loop T.Close インデントに漢字空白を使用しています。コピペ注意

saddiq
質問者

お礼

ご回答ありがとうございます。 書き直してみて動かしましたが、なにかでエラーがでてましたが、 こちらから必要箇所を切り取り、作成してみます。 現在VBSを覚えようと思ってますが、良いサイトご存知の方いませんか? もし、プロの方、素人の方で見るサイトは違うと思いますが、なにか お勧めありましたら教えてください ご回答ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBS/WindowsPowerShellについて

    VBSにてイベントログの取得(Eventquery.vbs使用)していたのですが、Vista以降はpowershellを使用してイベントログの取得をするようです。 powershellの使用経験がないため、簡単な使い方を教えてください。(イベントログの取り出しをバッチ形式で実施。外部ファイルから抽出日付を読み込んで抽出文を組み立てる等) また、既存VBS資産を流用することは可能なのでしょうか。(VBS←→powershell呼出し等) 初歩的な質問ですみませんが、よろしくお願いします。

  • VBSでテキストファイルを作成に関して質問です

    VBSで、Eventquery.vbsを使用してログを世代管理がしたく、VBSを書きました。 テキスト吐き出しがうまくいかないんですが、 どなたかわかる人がいましたら、ご意見をもらえればと思います。 下に、内容を記載します。 ちなみに、吐き出し作業以外は問題なく動作してると思われます。 よろしくおねがいします Option Explicit Dim WshShell,D,DD,MM,YY,E,I,N,F Set WshShell = CreateObject(\"WScript.Shell\") D = Date -1 DD = Mid(D,8,3) MM = Mid(D,6,2) YY = Mid(D,3,2) E = MM&DD&\"/\"&YY WshShell.Run \"cscript C:\\WINDOWS\\system32\\eventquery.vbs /V /FI \"\"Datetime eq \"& E &\",12:00:00AM-\"& E &\",11:59:59PM\" > \"C:\\\" & E & \".log\" Set WshShell = Nothing

  • VBSについて

    VBSについての質問です WINDOWSからSolarisにFTP接続してファイルを取得するVBスクリプト。 ・ /export/home/backup/mysql/の下にあるファイルを取得 ・ /export/home/backup/www/の下にあるファイルを取得 ・取得したいファイル名をリスト化、そのリストを読み込んで、 1つのファイルをGET.→FTP切断→FTP接続→ファイルGET→FTP切断の繰り返し ・取得したファイルはSolarisから削除 ・日付を管理。最新のを5つだけ残す。一番ファイルを削除 こういったVBSはどうつくればいいんでしょうか?

  • 【VBS】古い日付のフォルダを削除したい

    あるフォルダ(C:\test\)内のフォルダ名が日付形式(YYYYMMDD)のものの中で、 一番新しい日付のフォルダを残し、古い日付のフォルダを削除したいです。 日付が新しいか古いかは、フォルダ名で判断。作成日時で判断するのではない。 C:\test\フォルダには、日付形式(YYYYMMDD)のフォルダとそれ以外の名称のフォルダ、ファイルが含まれます。 例ですが、C:\test\フォルダに以下のフォルダ・ファイルがあるとして、 C:\test\AbcD1\ C:\test\20130601\ C:\test\20130611\ C:\test\Aiueo2\ C:\test\aa2.log C:\test\20130602\ C:\test\20130605\ C:\test\20130614\ C:\test\Zxy2\ C:\test\aaa.txt 削除するのは、 C:\test\20130601\ C:\test\20130611\ C:\test\20130602\ C:\test\20130605\ です。 以下のフォルダについては、フォルダ名が日付形式(YYYYMMDD)ではないので、 削除しません。 C:\test\AbcD1\ C:\test\Aiueo2\ C:\test\Zxy2\ 以下のフォルダについては、フォルダ名の日付が最新のため、 削除しません。 C:\test\20130614\ ファイルについては、削除しません。 C:\test\aa2.log C:\test\aaa.txt フォルダの一覧を取得するvbsは作成できました。 ですのであとは、 1.日付形式のフォルダを取得 2.最新の日付形式のフォルダ名を取得する 3.最新以外の日付フォルダを削除する 部分ができれば、できそうです。 サンプルソースや参考サイトを教えてください。

  • VBSを作成

    いつもありがとうございます。 Vista端末のIPアドレスを取得して、ネットワーク上PCの[\\share\aaa.txt]に書き込みに行くというスクリプトを作成しようとしているのですが、うまく作成することができません。 IPアドレスを取得して書き込みするまでは、いろいろなサイトを参考にして使えるようになりましたが サブネット・デフォルトゲートウェイ・DNS・WINDSなどの情報を拾う方法がまったくわかりません。 質問ばかりになりますが、サンプルや参考にできるサイトがありましたら教えて頂けますでしょうか。 以上、宜しくお願い致します。

  • Accessからバッチ処理を実施し、作成したデータを取り込む処理

    お世話になっております。 題名の件ですが、 ▼Accessマクロ Function EventQuery() Dim objWSH As Object Set objWSH = CreateObject("WScript.Shell") objWSH.Run """C:\Documents and Settings\userName\デスクトップ\EventLogAccess\event.bat""" Set objWSH = Nothing End Function 上記マクロで、event.batというバッチ処理を実行しております。 ▼event.bat set fname=%DATE:/=% eventquery /s server /u userName /p passWord /l application /fi "Id eq 8" /fi "Datetime gt 12/04/2009,01:00:00AM" /r 500 /v >%fname%.txt 上記バッチ処理で、2009年12月4日のイベントログ(アプリケーション)の一覧を取得しております。 【質問内容】 eventquery.vbsのオプションでは日付指定しかできないみたいですが、 実行した当日のログ(アプリケーション)を取得したいと考えております。 方法はないでしょうか? ご教示の程宜しくお願い致します。

  • VBSバックアップ

    バックアップスクリプト(VBS)について教えて下さい。 単純にディレクトリをバックアップするスクリプトは、出来たのですが これに付加機能を与えたいです。 ◆世代管理をしたい。 ◆iniファイルから、バックアップ元と先、管理する世代等の情報を読み込みたい。 <bkup.vbs> Option Explicit Const ForReading = 1 '読み込み Const ForWriting = 2 '書きこみ(上書きモード) Const ForAppending = 8 '書きこみ(追記モード) Dim objFileSys Dim objShell Dim strCopyFrom Dim strCopyTo Dim strToDir Dim strNewDate WScript.echo "バックアップを開始します" Set objFileSys = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") strNewDate = Year(Now) & _ Right(("0" & CStr(Month(Now)+0)),2) & _ Right(("0" & CStr(Day(Now)+0)),2) strCopyFrom = "C:\vbs" strToDir = "C:\backup" strCopyTo = objFileSys.BuildPath(strToDir,strNewDate) If objFileSys.FolderExists(strCopyTo) = True then WScript.echo "指定のパスには既にディレクトリが存在する為、" & _"バックアップ処理を中断します。" WScript.Quit Else objFileSys.CopyFolder strCopyFrom,strCopyTo WScript.echo "バックアップ処理は正常に完了しました。" End If Set objFileSys = Nothing Set objShell = Nothing 宜しくお願い致します。

  • フォルダの条件付き世代管理(ローテーション)

    VBSの質問です。 ■やりたいこと 1)設定ファイルを読み込んで、バックアップするフォルダの世代数(2世代分)と、フォルダ名を取得する。 2)対象フォルダ内にある任意2文字のサブフォルダがあることを確認し、作成日付でソート(古い順)する。 3)直近の新しい任意2文字のサブフォルダを2世代分を残して、3世代以降は削除する。 VBS自体が初心者でサイトなどで勉強しておりましたが、結局実装できませんでした。 上記につきまして、どのように実装すれば良いかお分かりの方がいらっしゃいましたら、 ご教授いただけますと幸いです。 よろしくお願いいたします。

  • _strdate関数について

    日付を管理するプログラムを作っているのですが、 _strdateで取得した日付をtxtファイルにfputs関数で書き出し、 次回起動時にtxtファイルの内容をfgets関数で取得し、 それを_strdate関数で取得した日付と比較しているのですが、 同じ日付にもかかわらず、不一致となります。 どちらもchar型で宣言しているのですが・・・ なにか見落としてるのでしょうか? 教えてください。お願いします。

  • echo と%ERRORLEVEL%の値について

    今日の日付から7日前の日付をテキストファイルに保存しようとし、下記のようにスクリプトを作成しました ago7.vbs --------------------------- dim ago7d ago7d = dateadd("d", -7, now()) WScript.Quit(year(ago7d) & right(100 + month(ago7d),2) & right(100 + day(ago7d),2)) --------------------------- main.bat --------------------------- cscript //nologo ago7.vbs echo %ERRORLEVEL%>D:\log.txt --------------------------- ago7.vbsで7日前の日付を取得し、main.batで受け取り、テキストファイルに出力しています。 こちらをコマンドプロンプトから直接「main.bat」を起動してやると正しく動作しますが、 (この場合のlog.txtは 20120903tが書き込まれて出力されています。) タスクスケジューラを使ってmain.batを実行すると、log.txtの新居陽は下記のようになってしまいます。 ECHO は <ON> です。 いろいろ試してみていますがうまくいきません。 どのようにすればlog.txtの内容が日付になるのでしょうか。