共有PCの実際の使用者を記録する
会社で個々人のPCのセキュリティをガチガチに固めたりしていると、何かと融通がきかない。 そのため、セキュリティ設定緩めの共有PCを1台と共有アカウントを1個用意し、やむを得ない時には利用してもらっている。
そのため、SKYSEAでログは取っているものの、実際に誰が操作しているのか分からない、という問題があった。
それを解決するため、PCに付属のカメラで、ログイン時に正面にいる人の顔を記録することにした。
前準備
- ffmpegをダウンロードする
- ffmpegにPATHを通す
- ffmpegでウェブカメラのデバイスや対応する解像度、フレームレートを調べておく
VBScript
以下のVBScriptファイルを適当なところに配置。 内容はスクリプト起動後、5秒間、ウェブカメラの映像を記録して、管理者用メールアドレスに送信する。
Option Explicit
On Error Resume Next
Dim objShell
Dim objFS
Dim strDate
Dim strFilePath
Dim objNetwork
Dim objMsg
Set objShell = CreateObject("WScript.Shell")
Set objFS = CreateObject("Scripting.FileSystemObject")
strDate = Year(Now())
strDate = strDate & Right("0" + Month(Now()), 2)
strDate = strDate & Right("0" + Day(Now()), 2)
strDate = strDate & Right("0" + Hour(Now()), 2)
strDate = strDate & Right("0" + Minute(Now()), 2)
strDate = strDate & Right("0" + Second(Now()), 2)
strFilePath = objFS.getSpecialFolder(2).Path & "\" + strDate + ".mp4"
objShell.Run "ffmpeg -f dshow -t 5 -video_size 1280x720 -framerate 7.5 -pixel_format yuyv422 -i video=""USB HD Webcam"" -r 30 -c:v libx264 -y """ & strFilePath & """", 0, True
Set objNetwork = CreateObject("WScript.Network")
Set objMsg = CreateObject("CDO.Message")
objMsg.From = "(送信元メールアドレス)"
objMsg.ReplyTo = "(返信先メールアドレス(任意))"
objMsg.To = "(宛先メールアドレス)"
objMsg.Subject = "Message from " + objNetwork.UserName + " " + objNetwork.ComputerName
objMsg.TextBody = "Recorded Video"
objMsg.TextBodyPart.Charset = "ISO-2022-JP"
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp-relay.gmail.com"
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
objMsg.Configuration.Fields.Update
If objFS.FileExists(strFilePath) Then
objMsg.AddAttachment strFilePath
objFS.DeleteFile strFilePath
End If
objMsg.Send
タスクスケジューラ
タスクスケジューラからタスクを作成し、トリガーに「ワークステーションのロック解除」に上のVBScriptが起動するように設定する。
これでロック解除した時、自動で管理者アカウントに動画付きメールが飛んでくるので、 SKYSEAログと照合すれば、誰が操作したのか追跡できる。