未経験からサーバー構築業務に携わり、証跡を撮る際によく使用するWinShotですが、証跡の接頭語を書き換えるのに、毎回右下のアイコンを右クリックするのが面倒で作成しました。
今回はデスクトップ上にフォルダを作成し、<フォルダ名>_<日付>の接頭語で保存していくように設定ファイルを変更し、WinShotを立ち上げるコマンドです。
フォルダ名・フォルダ名の場所の設定
#保存するフォルダの場所をデスクトップにする
$Savepath = "${HOME}/Desktop"
#保存するフォルダ名を対話形式で書く
$name = Read-Host "フォルダ名を記入してください"
cd $Savepath
mkdir $name
#日付の読み込み
$ShotDate = Get-Date -Format "yyyy_MMdd"
WinShotのフォルダ検索、格納
#WinShotのあるフォルダを検索し、変数に格納
$WSpath = Get-ChildItem -Path c:/ -Filter ws153a -Directory -Recurse 2>$null `
|Convert-Path
#WinShotのプロセス終了
Stop-Process -Name WinShot 2>$null
検索のコマンドの詳細については前回の記事をご参照ください。
プロセスを終了しないと元の設定が上がってきてしまうため、あがっている場合はプロセスを終了します。
WinShotの設定ファイルの中身を置換
#設定ファイルの読み込み、置換、別名で保存
cd $WSpath
Get-Content .\WinShot.ini `
|Foreach-Object { $_ -replace "FileNameHead=.*","FileNameHead=${name}_${ShotDate}_" `
|Foreach-Object { $_ -replace "SaveDirectory=.*","SaveDirectory=${Savepath}/${name}" `
|Out-File .\WinShot1.ini
#元設定ファイルを削除し、新しい設定ファイルを元の名前に変更する。
Remove-Item WinShot.ini
Rename-Item WinShot1.ini WinShot.ini
#WinShotの起動
Start-Process -FilePath "${WSpath}/WinShot.exe"
おわりに
配属後1ヶ月後位経って初めて作成したスクリプトなので、多少の愛着があります。コマンドさえ分かれば他に特に準備の必要がないPowerShellはかなり初心者にはもってこいだと思います。