Web打刻で打刻忘れをされる方結構いらっしゃると思います。僕も忘れてしまいます。そして様々な対策をされると思います。それでもつい忘れてしまう方に新たな簡単な対策法を1つ提案いたします。
タスクスケジューラで打刻せよと表示させる!
web打刻をされるということは皆さん業務でお使いのパソコンで打刻されますよね。そのパソコンに打刻してくださいというメッセージを表示させ、OKボタンを押さないと操作できないようにします。強制力を持った素晴らしい対策法だと思いませんでしょうか。
(注.管理者権限がないパソコンの方、共有パソコンの方は情シスの方へ相談が必要になると思います)
というわけでやり方をお教えいたします。
powershellスクリプトをコピーしてどこかに保存する
まずこのpowershellスクリプトと呼ばれるプログラムをコピーしてください。何かダウンロードするとかの怪しいことはしておりませんので安心してご使用ください。
# System.Windows.FormsとSystem.Drawingアセンブリをロード
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# 画面の解像度を取得
$screenWidth = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Width
$screenHeight = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Height
# 半透明の全画面オーバーレイを作成
$overlay = New-Object System.Windows.Forms.Form
$overlay.FormBorderStyle = 'None'
$overlay.BackColor = 'Black'
$overlay.Opacity = 0.5 # 透明度を設定(0.0~1.0)
$overlay.ShowInTaskbar = $false
$overlay.StartPosition = 'Manual'
$overlay.Size = New-Object System.Drawing.Size($screenWidth, $screenHeight)
$overlay.Location = New-Object System.Drawing.Point(0, 0)
$overlay.TopMost = $true
# オーバーレイがクリックされたときに何もしないように設定
$overlay.Add_Click({})
# メインのダイアログフォームを作成
$form = New-Object System.Windows.Forms.Form
$form.Text = "打刻確認"
$form.Size = New-Object System.Drawing.Size(400, 200)
$form.StartPosition = "CenterScreen"
$form.FormBorderStyle = 'FixedDialog'
$form.MaximizeBox = $false
$form.MinimizeBox = $false
$form.ControlBox = $false # 閉じるボタンを無効化
$form.TopMost = $true
$form.ShowInTaskbar = $false
# ラベルを作成
$label = New-Object System.Windows.Forms.Label
$label.Text = "打刻したら完了ボタンを押してください"
$label.AutoSize = $true
$label.Location = New-Object System.Drawing.Point(50, 50)
$label.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 12)
# ボタンを作成
$button = New-Object System.Windows.Forms.Button
$button.Text = "完了"
$button.Size = New-Object System.Drawing.Size(100, 30)
$button.Location = New-Object System.Drawing.Point(150, 100)
$button.Font = $label.Font
# ボタンのクリックイベントを定義
$button.Add_Click({
$form.Close()
$overlay.Close()
})
# フォームにコントロールを追加
$form.Controls.Add($label)
$form.Controls.Add($button)
# オーバーレイを表示
$overlay.Show()
# ダイアログフォームをモーダルとして表示
$form.ShowDialog()
# リソースを解放
$overlay.Dispose()
$form.Dispose()
そしてスタートボタンからWindows Powershell ISEというソフトウェアを探してクリックします
ISEに先ほどのコードを張り付けてファイル>名前を付けて保存をクリックします。
ドキュメントなどにdakokuなどの適当な名前をつけて保存しておきます。
タスクスケジューラに登録する
タスクスケジューラを開きます。Windows管理ツールの中にあります。検索でタスクと入力しても出てくると思います。
タスクの作成
右にタスクの作成とありますのでこれをクリックします。(今回はタスクの作成の画像で解説していますが基本タスクの作成のほうが簡単かもしれません)
全般タブで名前と説明を決めます。あとはそのままで大丈夫です。
トリガーの設定
トリガータブで新規をクリックします。ここではタスクを実施する日時を決めます。始業5分前くらいに設定したい方は毎週を選択して、月から金曜日を選択します。開始の時間を次の日の始業5分前くらいにしてOKをクリックします。
ここのトリガーは複数設定できるので退勤打刻も設定したい方は退勤時間のトリガーを設定すればOKです。
新しい操作の設定
次に操作タブの新規をクリックします。
ここはおまじないなのでコピペと少し工夫がいります。
プログラム/スクリプトには
powershell.exe
と入力します。
引数の追加に
-ExecutionPolicy Bypass -File
と入力します。
先ほどの-Fileの後ろにはさきほど保存したpowershellスクリプトのパス(場所)を指定してあげる必要があります。簡単なやり方はpowershellスクリプトをSHIFTキーを押しながら右クリックします。パスのコピーというのが出ていますのでこれをクリックします。
これを-Fileの後ろにペーストします。
先ほどの引数の追加は以下の様に入力すると完成です。
-ExecutionPolicy Bypass -File "C:\Users\Administrator\Documents\dakoku.ps1"
新しい操作の設定が完了できたらOKを押します。
タスクの完成と動作確認
タスクの作成もOKをクリックするとタスクが完成しました。
動作確認をしてみましょう。今この画面になっているはずです。
先ほど作成したタスクを右クリックすると実行するが選択できますのでクリックします。
以下のように表示されます。これなら打刻を後回しにすることもなく打刻忘れを極力なくすことが出来ると思います。
次の日の始業5分前に実行されるかどうかなどを確認したらこのタスクの作成は完了です。
打刻忘れがちな皆様の助けになれば幸いです。