1.概要
WindowsPCに不具合があった時などは
とりあえずイベントログを見ることで解決につながることもあります。
ですが、すぐそこにあるPCであれば何の問題ないのですが
各地にあるPCに対してそれを行うことは容易ではありません。
今回はイベントログファイルをcab形式で圧縮して取得しようと思います。
確認環境は【Windows10】になります。
2.イベントログのパス
主に必要なイベントログファイルは下記の3種類になります。
アプリケーションログ
【C:\Windows\System32\winevt\Logs\Application.evtx】
セキュリティログ
【C:\Windows\System32\winevt\Logs\Security.evtx】
システムログ
【C:\Windows\System32\winevt\Logs\System.evtx】
3.CAB形式とは
Microsoftが開発したものでWindows標準の圧縮形式の1つです。
zip型式と比べると圧縮率が高い反面
圧縮処理に時間がかかってしまうのが難点です。
処理スピードよりも、ファイル容量を重視するのであれば
CAB形式はいい選択肢になると思います。
4.CAB形式への圧縮方法
【コマンドプロンプト】から【makecab】コマンドを用いて圧縮します。
5.単純に圧縮してみる
何も考えずに単純に圧縮してみます。
作業フォルダを下図のとおり用意しました。
3種類のイベントログをコピーしておいてあります。
list.txtについては、圧縮したいファイル名が記載されているテキストファイルです。
ファイルの中身は下記のとおりです。
Application.evtx Security.evtx System.evtx
では実際にコマンドを打ち込んでみます。
コマンドは下記のとおりです。
オプションの【/f】で圧縮したいファイルのリストを指定しています。
C:\work\compression>makecab /f list.txt
Cabinet Maker - Lossless Data Compression Tool
62,926,848 bytes in 3 files
Total files: 3
Bytes before: 62,926,848
Bytes after: 7,263,606
After/Before: 11.54% compression
Time: 13.78 seconds ( 0 hr 0 min 13.78 sec)
Throughput: 4460.48 Kb/second
結果は下図のとおりです。
【disk1】~【disk5】までのフォルダが作成され
その中にそれぞれ
【1.cab】~【5.cab】が入っています。
調べてみると何も指定がないとフロッピーディスクのサイズで
分割されてしまうそうです。
圧縮後のファイルサイズが7,263,606Byteに対して
5分割されたファイルサイズがそれぞれ1400KBくらい
だったのでなるほどといった感じでしょうか。
2HD形式でしょうか?
今回は分割なしのCABファイルが欲しいので
オプションを調べて指定していきます。
6.ちゃんと圧縮する
結果目標としては
【list.txt】に記載してあるファイルを
【windowsEventLogs.cab】という名称のCABファイルに圧縮することです。
実際のコマンドは下記のとおりです。
C:\work\compression>makecab.exe /f list.txt /D MaxDiskSize=67108864 /D CabinetNameTemplate=windowsEventLogs.cab /D DiskDirectoryTemplate=result
Cabinet Maker - Lossless Data Compression Tool
62,926,848 bytes in 3 files
Total files: 3
Bytes before: 62,926,848
Bytes after: 7,262,831
After/Before: 11.54% compression
Time: 11.10 seconds ( 0 hr 0 min 11.10 sec)
Throughput: 5535.72 Kb/second
コマンドの詳細ですが
オプション名 | 詳細 |
---|---|
MaxDiskSize | ここに記載された容量を超えるとファイルが分割されます(512の倍数である必要がある)。 |
CabinetNameTemplate | CABファイルの名前を指定します。 |
DiskDirectoryTemplate | CABファイルを格納するフォルダの名前を指定します。 |
結果は下図のとおりです。
【result】というフォルダの中に
【windowsEventLogs.cab】という圧縮ファイルが作成されています。