出退勤時刻を簡単記録(2)

出退勤管理の第2回目です。

今回は、前回作成した「時刻を記録する処理」をPCを起動・終了した時に自動的に起動するようにします。

■ 自動的に起動させる手段の選択

PCで処理を自動的に起動する方法はいつくかあります。

私の知る限りでは、次の4つの方法が思いつきます。

1)スタートアップフォルダに起動する処理のショートカットを置く

名前の通りスタートアップですから、起動時(ログオン)は良いのですが終了時(ログオフ)には使用できません。処理を常駐させておき、PCの終了(ログオフ)を検知する方法もありますが、常駐させておく意味がないし、終了を検知する処理も複雑(?)で無駄(?)かな、とおもいます。

2)タスクスケジューラに起動する処理を登録する

起動する時刻などを指定できることを除けば、1)のスタートアップを利用する方法とほぼ同じだとおもいます。

3)ローカルグループポリシーに起動する処理を登録する

ログオン・ログオフ時それぞれに起動する処理が設定できます。PCの起動・終了時にもそれぞれ起動する処理が設定できます。

4)レジストリに起動する処理を登録する

1度のみ有効などの機能を除けば、1)のスタートアップを利用する方法とほぼ同じです。

今回の要件には3)のローカルグループポリシーを利用するのが一番良いと思われます。起動のタイミングとして、PCの起動・終了時とログオン・ログオフ時がありますが、起動時ではログオン前なので利用者が特定できません。なので、ログオン・ログオフ時に起動する方法を選択します。ただし、1日に何回もPC起動してログオン・ログオフしたりすると、その回数分だけ記録が残りますが、それどう扱うかは、そのデータを処理するシステムに任せて、ここではログオン・ログオフの記録をとることを考えます。

■ ローカルグループポリシーでの設定手順

ローカルグループポリシーエディターを起動します。

スタートボタンを右クリックして「ファイル名を指定して実行」をクリックします。

スタートボタンを右クリック

「ファイル名を指定して実行」のウィンドウが表示されたら、「名前」に  gpedit.msc  と入力して「OK」をクリックします。

ファイル名を指定して実行

「ローカルグループポリシーエディター」のウィンドウが表示されたら、左側のペインで「ユーザーの構成」、「Windowsの設定」の順にツリーを開き「スクリプト(ログオン/ログオフ)」をクリックすると、右側のペインに「ログオン」と「ログオフ」が表示されます。

ローカルグループポリシーエディター

まず、ログオンした時に起動する処理を設定します。

「ローカルグループポリシーエディター」の右側のペインにある「ログオン」をダブルクリックします。「ログオンのプロパティ」ウインドウが表示されたら、「追加」をクリックします。

ログオンのプロパティ

「スクリプトの追加」ウインドウが表示されたら、「参照」ボタンをクリックして前回作成したVBスクリプトを選択します。「スクリプトのパラメータ」には、VBスクリプトを起動するときの引数を入力します。正しく入力出来たら「OK」をクリックします。

スクリプトの追加

「ログオフ」も同様に作成します。起動するVBスクリプトは同じですが、パラメータは「TAISYA」にしてください。

「ローカルグループポリシーエディター」のウィンドウから「ログオフ」をダブルクリックして「ログオフのプロパティ」ウィンドウで追加をクリックしてVBスクリプト名とパラメータを入力します。

■ テスト開始

これで、準備は全て整いました。開いているウインドウを全て閉じてから、PCを再起動してログインしてみましょう。

VBスクリプトで記録しているファイルは「C:\MyData\test\LOGMSG.txt」ですので、エディタ等で開いてみると、以下のようなデータが記録されています。

DataWrite	ARG1=SYUSSYA		2017/02/01 13:45:40
DataWrite	ARG1=TAISYA		2017/02/01 13:50:38
DataWrite	ARG1=TAISYA		2017/03/02 13:57:31
DataWrite	ARG1=SYUSSYA		2017/03/02 13:58:52

3行目と4行目が今回記録されたデータです。PCをシャットダウンしたときにログオフされていますので、3行目のレコードが記録されています。4行目はログオンしたときに記録されたレコードです。

これで、ログイン・ログアウトする度に、自動的に日時が追加してテキストファイルに記録されるようになりました。

今回は、ここまでです。

次回は、もう少し使いやすく、改造します。

コメント

  1. 余 江英 より:

    # 問題:ログオンとログオフとき、スクリプトが二回実行された。
    いろいろ調べましたが、原因がわからない。
    教えていただけませんか?

    • hasegawa より:

      コメントありがとうございます。
      ブログには使用方法の例として掲載しております。
      したがって、お使いのPCのOSや環境等によって、動作が違う場合がございます。
      正式に調査をご依頼していただく場合は、「お問い合わせ」のページより、お申込みくださいますようお願いいたします。

コメントの受付は終了しました。