回答:
なんてクールな質問でしょう。ここに私の解決策があります(一部はケルタリの答えに触発されました):
必要条件
snapshot_login_failure.cmd(ffmpeg.exeのあるフォルダーにこれを配置します)
@echo off
:: Get date and time independent of regional settings. Source: http://stackoverflow.com/questions/203090/how-to-get-current-datetime-on-windows-command-line-in-a-suitable-format-for-us
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set datetime=%ldt:~0,4%_%ldt:~4,2%_%ldt:~6,2%_%ldt:~8,2%_%ldt:~10,2%_%ldt:~12,2%
:: Capture snapshot through DirectShow using FFmpeg and save to disk. Change name of video adapter and save path.
ffmpeg.exe -f dshow -i video="USB 2.0 UVC HD Webcam" -vframes 1 E:\snapshot_%datetime%.jpg
snapshot_login_failure.xml(これをWindowsスケジューラタスクとしてインポートします)
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2013-07-06T23:32:34.0732602</Date>
<Author>Zoe\Zero3</Author>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Security"><Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and EventID=4625]]</Select></Query></QueryList></Subscription>
</EventTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-19</UserId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>E:\snapshot_login_failure.cmd</Command>
<WorkingDirectory>E:\</WorkingDirectory>
</Exec>
</Actions>
</Task>
ノート
古いスレッドを復活させてすみませんが、今後これにつまずく人の助けとしてこれを投稿しています。
Zero3のプロセスはほとんどの部分で機能し、多くの称賛を受けました。しかし、私は失敗したログイン試行のログを有効にして、ログでイベントIDを右クリックし、おそらくXML経由でタスクをインポートする代わりに「このイベントにタスクを添付する」を選択した後にのみ動作しましたタスクを作成するために管理者パスワードを入力する必要があったため、権限を使用します。
もう1つ、奇妙に感じたのは、トリガーされたタスクが.cmdファイルをプログラム/スクリプトとして認識しなかったことです。これを修正するために、同じディレクトリに以下のコードを使用してrun.batという名前の単純な.batファイルを作成し、代わりにタスクにバッチファイルを開始させて、.cmdを実行させました。
ホップスコッチのような方法で動作させることができますが、このスレッドのおかげで私の成功に非常に満足しています。そして、このプロセスに関するビデオチュートリアルを作成したいと思います:)
どうもありがとう!
注:Windows 10 Pro x64を実行しています
run.batコード:
Start "" "C:\<filepath to .cmd>"
はい、Windows MSGINAに精通している場合は、理論的にはラップトップでカメラを起動し、写真をスナップしてカスタムフォルダーに保存するカスタムログインイベントを作成できます。
参照:http : //technet.microsoft.com/en-gb/library/bb742447.aspx