[AWSJP.COM トップ]
[AWS CLI サンプルコード トップへ]





【AWS CLI サンプルコード】Windows イベントログを S3 にアップロードしてその後削除する

Powershell で AWS API を操作するサンプルコードの紹介です。Windows 環境を想定しています。




Windows イベントログのアプリケーション、セキュリティ、システムをファイルに出力した後 S3 へアップロードするサンプルプログラムです。
アップロードした後にログ本体はクリアされる点に注意してください。また事前にS3へアクセスするポリシーも必要です。

一時的にc:\temp に evtx 形式でログを出力し、その後圧縮してS3に送信しています。最後に不要なファイルは削除しています。


$logtoexport = @("Application","Security","System")
$FilenameDateTime = (Get-Date).ToString("yyyymmddHHmmss")

$ErrorActionPreference ="Stop"

try{
foreach($logname in $logtoexport)
{
$FileName = $Env:COMPUTERNAME + "_" + $logname + "_" + $FilenameDateTime

$ExportFile = "c:\temp\" + $FileName + ".evtx"
$KeyName = $FileName + ".zip"
$ZipFile = "c:\temp\" + $KeyName

$evsession = New-Object -TypeName System.Diagnostics.Eventing.Reader.EventLogSession
$evsession.ExportLogAndMessages($logname,"LogName","*",$ExportFile)


#ZIP ファイルに圧縮
Compress-Archive -Path $ExportFile -DestinationPath $ZipFile

#S3 にアップロード
Write-S3Object -BucketName "mybucketname" -File $ZipFile

#ファイルを削除
Remove-Item $ExportFile
Remove-Item $ZipFile

#イベントログ本体を削除
Clear-EventLog -Logname $logname
}
}
catch
{
Write-Host "error."
Write-Host $error[0]
}








[AWS CLI サンプルコード トップへ]
[awsjp.com トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 Copyright(c) awsjp.com 2018-2019