MS DHCPログからレポートを取得する方法の例を見てみましょう。
アドレス空間の使用に関するレポートを生成する技術は、2つの部分で構成されています。
1)DHCP更新イベントの分離と
2)SQL処理。
\\ dhcp_server \ c $ \ Windows \ System32 \ dhcpフォルダには、DHCPサーバーのログがあります。 それらのコピーは、ローカルまたはネットワークドライブ上の1つのフォルダーに収集する必要があります。 たとえば、c:\ tmp
これらのファイルから、すべてのdhcpリース更新更新イベントを取得できます。
cmd
C:
cd c:\tmp\
1)最初の段階では、重要な行を強調します。 処理するすべての* .logファイル名をコンマで区切ってリストします。 何らかの方法でファイル名を変更することで、数週間でファイルを収集できます。
c:\tmp>for /f "tokens=1,2,3,4,5,6,7,8 delims=," %a in (DhcpSrvLog-Mon.log,DhcpSrvLog-Tue.log,DhcpSrvLog-Wed.log,DhcpSrvLog-Thu.log,DhcpSrvLog-Fri.log,DhcpSrvLog-Sat.log,DhcpSrvLog-Sun.log) do if [%e] NEQ [] echo %b,%c,%d,%e,%f,%g >> text.csv
2)ヘッダー「日付、時刻、説明、IP、ホスト名、MAC」をtext2.csvファイルの最初の行に追加し、残りの行に更新イベントを入力します。
c:\tmp>echo Date,Time,Description,IP,Hostname,MAC >> text2.csv
c:\tmp>for /f "tokens=1,2,3,4,5,6 delims=," %a in (text.csv) do if "%c" EQU "Renew" echo %a,%b,%c,%d,%e,%f >> text2.csv
text2.csvを毎週保存し、連結によって1つのファイルに収集できます。 たとえば、1か月間、6か月間など、アドレスが使用されていないことを確認する必要がある場合、この期間にtext2.csvファイルを保存し、次の操作の前に接着する必要があります。
3)レポート生成:
c:\tmp >"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" -i:csv -o:TPL -tpl:dhcp2.tpl "SELECT IP, hostname, mac, max(to_timestamp(add(add(Date, ' '),time), 'MM/dd/yy HH:mm:ss')) as timestamp, EXTRACT_TOKEN(ip, 0, '.') as octet1, EXTRACT_TOKEN(ip, 1, '.') as octet2, EXTRACT_TOKEN(ip, 2, '.') as octet3, EXTRACT_TOKEN(ip, 3, '.') as octet4, add(strrepeat('0',sub(3, to_int(strlen(octet4)))),octet4) as octet4lz, add(strrepeat('0',sub(3, to_int(strlen(octet3)))),octet3) as octet3lz INTO text2.html FROM text2.csv group by IP,mac,hostname order by octet1,octet2,octet3lz,octet4lz"
これにより、text2.htmlファイルが作成され、DHCPを介してアドレスを受信する「ライブ」コンピューターを確認できます。
「-o:TPL -tpl:dhcp2.tpl」を「-o:CSV」に、「text2.html」を「b8.csv」に置き換えると、出力ファイルをExcelにインポートできます。
"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" -i:csv -o:CSV "SELECT IP, hostname, mac, max(to_timestamp(add(add(Date, ' '),time), 'MM/dd/yy HH:mm:ss')) as timestamp, EXTRACT_TOKEN(ip, 0, '.') as octet1, EXTRACT_TOKEN(ip, 1, '.') as octet2, EXTRACT_TOKEN(ip, 2, '.') as octet3, EXTRACT_TOKEN(ip, 3, '.') as octet4, add(strrepeat('0',sub(3, to_int(strlen(octet4)))),octet4) as octet4lz, add(strrepeat('0',sub(3, to_int(strlen(octet3)))),octet3) as octet3lz INTO b8.csv FROM text2.csv group by IP,mac,hostname order by octet1,octet2,octet3lz,octet4lz"
LogParserのダウンロードはこちら:
www.microsoft.com/en-us/download/details.aspx?id=24659