勤怠の打刻と実際の働き方がずれていないかを確かめるために、PCのログオン・ログオフ時刻を使う会社が増えています。Windowsには標準でその記録が残っているので、ツールを入れなくても取り出せます。
この記事では、ログから日ごとの最初と最後の時刻を一覧にする手順と、勤怠と突き合わせるときの注意点を扱います。あわせて、多くの解説で抜けている「そのログが本当に本人のものか」という問題も取り上げます。
PCログが勤怠の確認に使われる理由
厚生労働省の「労働時間の適正な把握のために使用者が講ずべき措置に関するガイドライン」では、始業・終業時刻の確認方法として、タイムカードやICカードと並んでパソコンの使用時間の記録が挙げられています。自己申告で時間を管理している場合も、こうした記録と申告の間に大きな差があれば、実態を調べて補正することが求められています。
また労働安全衛生法では、管理監督者を含めた労働時間の状況の把握が義務づけられており、その方法の例にもパソコンの使用時間の記録が含まれています。PCログは「申告と実態のずれに気づくための記録」として使うのが基本です。
勤怠の確認に使うイベント
イベントビューアーで見る記録のうち、勤怠の確認に使うのは次のイベントです。ログオン・ログオフだけなら、既定で記録されるシステムログの7001と7002で足ります。
| イベントID | ログ | 意味 |
|---|---|---|
| 7001 | システム | ユーザーのログオン(Winlogon)。既定で記録される |
| 7002 | システム | ユーザーのログオフ(Winlogon)。既定で記録される |
| 6005 / 6006 | システム | PCの起動 / 正常なシャットダウン |
| 42 / 1 | システム | スリープに入った / スリープから復帰した(発行元はKernel-Power / Power-Troubleshooter) |
| 4800 / 4801 | セキュリティ | 画面ロック / ロック解除。監査の設定を有効にしないと記録されない |
セキュリティログの4624(ログオン成功)でも時刻は取れますが、サービスやネットワーク越しのアクセスも大量に記録されるため、勤怠の確認には向きません。個々のイベントの見方はWindowsのログイン履歴を確認する方法で扱っています。
手順1:イベントビューアーで確認する
- スタートボタンを右クリックし、「イベント ビューアー」を開きます。
- 左側の「Windows ログ」→「システム」を選びます。
- 右側の「現在のログをフィルター」を選び、イベントIDの欄に
7001,7002と入力して「OK」を押します。 - 日時の列で、その日の最初の7001(ログオン)と最後の7002(ログオフ)を確認します。
数日分を確かめるだけならこれで足ります。1か月分を勤怠と突き合わせるなら、次のコマンドで一覧にするほうが早く確実です。
手順2:日ごとの最初と最後の時刻を一覧にする(PowerShell)
PowerShellを管理者として実行し、次のコマンドを貼り付けます。過去31日間について、日ごとに最初のログオンと最後のログオフの時刻を並べます。
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7001,7002; StartTime=(Get-Date).AddDays(-31)} |
Group-Object { $_.TimeCreated.ToString('yyyy-MM-dd') } |
ForEach-Object {
$on = $_.Group | Where-Object Id -eq 7001 | Sort-Object TimeCreated | Select-Object -First 1
$off = $_.Group | Where-Object Id -eq 7002 | Sort-Object TimeCreated | Select-Object -Last 1
[pscustomobject]@{ 日付 = $_.Name; 最初のログオン = $on.TimeCreated; 最後のログオフ = $off.TimeCreated }
} | Sort-Object 日付結果をExcelで勤怠の記録と並べるなら、末尾に | Export-Csv -Path pclog.csv -NoTypeInformation -Encoding UTF8 を付けるとCSVに書き出せます。
「最後のログオフ」が空の日は、ログオフせずにシャットダウンやスリープをした日です。その場合は6006(シャットダウン)や42(スリープ)の時刻で補います。
手順3:勤怠の記録と突き合わせる
- 差が出る日だけを見る:毎日の数分の差は通勤や準備の時間で自然に出ます。30分以上など、社内で基準を決めて、それを超えた日だけ本人に確認します。
- 席を外していた時間を区切る:ログオンからログオフまでの間に長いスリープや画面ロックがあれば、その間は作業していなかった可能性があります。画面ロックの記録(4800・4801)を取るには、グループポリシーの「監査ポリシーの詳細な構成」で「その他のログオン/ログオフ イベントの監査」を有効にします。
- 記録が消える前に取る:ログの容量が既定のままだと古い記録から消えていきます。月末に確認する運用なら、保存期間を先に延ばしておきます。手順はイベントログの保存期間を確認・変更する手順を参照してください。
ログが本人と一致しない4つの場合
ここまでの手順は、そのPCを1人が、自分のIDで使っていることが前提です。PCのログに残るのは「どのIDでログインしたか」であって、「誰が座っていたか」ではありません。次のどれかに当てはまると、ログを勤怠の確認に使えなくなります。
1. 共用PCを部署のIDで使っている
受付や現場の端末を「共用」などの1つのIDで使っていると、ログには全員分の時刻がそのIDで混ざって残ります。1人ずつIDを分けるか、使う人ごとにログインし直す運用が必要です。進め方は共用PCの認証設計で扱っています。
2. パスワードを教え合っている
「急ぎで代わりにログインしておいて」という貸し借りがあると、本人が出社していない日にも本人のIDで記録が残ります。勤怠の確認で最も判断を誤りやすいのがこの場合です。
3. 自動ログオンになっている
電源を入れただけでログインまで進む設定では、誰が電源を入れたかが分かりません。設定されているかの確認と解除は自動ログオンを解除する方法を参照してください。
4. 画面ロックがかからず、ログインしたまま離席している
ログインしたまま席を離れると、その間に別の人が操作しても記録上は本人の作業になります。一定時間で画面ロックがかかるように、離席時の自動画面ロックを全社で設定しておきます。
「誰が使ったか」を残すには、IDを1人1つにする
PCログを勤怠の確認に使えるかどうかは、ツールより先にログインの運用で決まります。1人1つのIDでログインし、貸し借りをせず、離席時にはロックがかかる。この状態になって初めて、ログの時刻が本人の時刻になります。
ただ、共用PCで毎回ログインし直してもらう、パスワードを教え合わないよう徹底する、といった運用は、現場の手間が増えるため定着しにくいのが実情です。共有IDをやめるときの現場の説得の仕方は共有アカウントの廃止の進め方にまとめています。
よくある質問
Q. PCのログは労働時間の記録として認められますか?
A. 厚生労働省のガイドラインでは、始業・終業時刻を確認する客観的な方法の例としてパソコンの使用時間の記録が挙げられています。ただしPCが起動していた時間がそのまま労働時間になるわけではなく、自己申告や勤怠の打刻と突き合わせ、大きな差があれば実態を確認するという使い方が基本です。
Q. スリープや画面ロック中の時間はどう扱えばよいですか?
A. ログオン・ログオフの記録だけでは、席を外していた時間が分かりません。スリープの開始と復帰(システムログの42と1)、画面ロックと解除(セキュリティログの4800と4801)を併せて見ると、PCを実際に使っていなかった時間帯を区切れます。4800と4801は監査の設定を有効にしてから記録が始まります。
Q. 過去何日分までさかのぼれますか?
A. ログの容量で決まります。既定の容量のままだと、古い記録から上書きされて数週間から数か月で消えることがあります。勤怠の確認に使うなら、先に保存期間を延ばしておく必要があります。
Q. 共用PCのログから、誰が使ったかは分かりますか?
A. 1人1つのIDでログインしていれば分かります。部署で1つのIDを使い回している、パスワードを教え合っている、自動ログオンになっている場合は、ログにはIDしか残らないため、実際に誰が使ったかは分かりません。
参考
- 厚生労働省「労働時間の適正な把握のために使用者が講ずべき措置に関するガイドライン」
- 労働安全衛生法 第66条の8の3(労働時間の状況の把握)
