Q
Update

データ入力のオペレータが使うパソコンについて,だれがログオンしてもNum Lockキーを有効な状態にしておきたいと思っています。どのようにすればよいのでしょう。

Updateは,過去にこの連載で掲載したQ&Aを新しいプラットフォームで検証したものです。

A

Windows XP/2000/NTマシンでは,Num LockやCaps Lockといったキーボードの状態を各ユーザーごとに終了時に記録しており,次回のログオン時に自動的に再現するようになっています。しかし,初めてユーザーがログオンする場合は,これらのキーはオフの状態になっています。また,終了時にオフになっていると,次回のログオン時にはやはりオフとなってしまいます。

 いろんなユーザーが伝票やデータ入力をすることが多いマシンでは,どのユーザーが使う場合でもはじめからNum Lockキーをオンにしておいたほうが便利でしょう。そのような環境を実現するには,2つの方法があります。


△ 図をクリックすると拡大されます
図7●レジストリ・エディタでHKEY_USERS\.DEFAULT\Control Panel\KeyboardというエントリにあるInitialKeyboardIndicators値を2に変更すれば,どのユーザーが使う場合でもNum Lockキーをオンの状態で起動する

レジストリ設定とスクリプトで可能
 最も簡単なのはレジストリを修正する方法です。レジストリ・エディタからHKEY_USERS
\.DEFAULT\Control Panel\KeyboardというエントリにあるInitialKeyboardIndicatorsの値を「2」に設定します(図7)。これで,そのマシンを使うすべてのユーザーは,Num Lockキーがオンの状態でログオンできるようになります。

 もう1つはログオン時にスクリプトを実行する方法です。Num Lockの状態はWSH(Windows Script Host)のスクリプトで制御できます。具体的には,以下のようなスクリプトを実行すればNum Lockをオンにできます。

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{NUMLOCK}"

 このスクリプトを書いたファイルを,「numlock.vbs」のようなvbsという拡張子をもつファイルとして,全ユーザーに有効なスタートアップのフォルダに保存します。そうすると,ログオン時に自動実行されてNum Lockをオンにしてくれます。

GPOでドメインの全マシンに適用
 マシンが数多く存在する場合,これらをいちいち設定するのは面倒でしょう。Active Directory環境で使っていれば,ログオン・スクリプトとグループ・ポリシー・オブジェクト(GPO)を併用することで複数のマシンに同時に適用させることが可能です。


△ 図をクリックすると拡大されます
図8●グループ・ポリシーのログオン・スクリプトを使えば,ドメインに所属する全ユーザーに対してNum Lockキーをオンの状態で起動できる

 まず,作成したスクリプト・ファイルをドメイン・コントローラの%SysVolFolder%\Sysvol\Sysvol\ドメイン名\Scriptsフォルダに保存します。続いて,[グループポリシー管理コンソール]から[ユーザーの構成]-[Windowsの設定]-[スクリプト]の下にある[ログオン]を選び,そこで保存したスクリプト・ファイルを追加します(図8)。

 これで,そのGPOを設定した対象のオブジェクトに対して,Num Lockをオンにするスクリプトがログオン時に実行されるようになります。

編集部