27 January 2012

Windows 2000,XPのカスタマイズ

出来る限りレジストリエディタや、マイクロソフト製のツールのみを使ってカスタマイズすることを目指します。(会社のセキュリティ規則で、許可されたソフト以外に使えない場合は、カスタマイズソフトが使えないため)

目次
レジストリ
回復コンソール
キーボード、日本語変換
Internet Explorer
セキュリティパッチを再起動せずに連続適用
NTPでシステム時計を自動修正
ファイル共有利用とカスタマイズ
Windows XPログイン画面のカスタマイズ
コモンダイアログのプレースバー項目の変更
コマンドプロンプトのカスタマイズ
Windowsの組織名・所有者を変更する
ファイル関連付けのカスタマイズ
Windows NT のシステムポリシー エディタを Windows2000で使う
Windows2000のUser権限でFAX送信できない
「別のユーザとして実行」でファイル エクスプローラが実行できない

Windows XPに通用するカスタマイズ

システム設定

Windowsカーネルを物理メモリにすべて配置する

カーネルを仮想メモリにスワップアウトしない設定

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"DisablePagingExecutive"=dword:00000001

DisablePagingExecutiveを0から1に変更する

レジストリ

ユーザ別に制限を設けたレジストリ

各種周辺機器のドライバやアプリケーション・ソフトで、Windows 2000/XPのマルチユーザを考えずに作られた古いソフトや欠陥ソフトの中には、レジストリに(わざわざ)アクセス制限を掛けているものがあります。

アクセス制限さえ解除すれば、制限ユーザ(Users権限)でも使えるようになります。

Microsoft Process Monitor をインストールして、管理者権限で実行し、どのレジストリ キーがアクセス違反となっているか調べます。

ハイライト設定(Filter - Highlight )で「ACCESS DENIED」を着色するようにすれば、どのキーでアクセス違反が起こっているか分かる。アクセス制限を解除したいキーが見つかれば...

  • Windows XPの場合 : レジストリエディタで該当キーを表示し、コンテキストメニューの「アクセス許可」でアクセス許可を変更する
  • Windows 2000の場合 : Regedt32.exeで該当キーを表示し、コンテキストメニューの「アクセス許可」でアクセス許可を変更する

回復コンソール

回復コンソールでサービスの有効・無効を切り替える

 Listsvc でサービス一覧を表示し、次のコマンドでサービスの自動起動・停止を設定する。

  •  Enable [サービス名] SERVICE_AUTO_START 
  •  Enable [サービス名] SERVICE_SYSTEM_START 
  •  Enable [サービス名] SERVICE_BOOT_START 
  •  Disable [サービス名] 

参考資料

キーボード、日本語変換

キーマップが間違って英語・日本語になっている場合

キーボードドライバの次に示すレジストリ値がkbd101.dllになっている場合は、kbd106n.dll または kbd106.dll にドライバを変更すればよい。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
"LayerDriver JPN"="kbd106.dll"

Internet Explorer

Internet Explorer「お気に入り」フォルダの意図しない移動

インターネット・エクスプローラを「別のユーザとして実行」モードで実行した場合、「お気に入り」フォルダが「%WINDIR%\Favorites」に自動的に書き換えられてしまう場合があります。

その場合、レジストリエディタ(Windows 2000の場合は regedt32.exe を用いて)で次のレジストリを修正する。

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Favorites"="H:\\Documents and Settings\\ユーザ名\\Favorites"
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Favorites"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,\
  4c,00,45,00,25,00,5c,00,46,00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,\
  00,00,00

※ Favoritesは16進数に展開されているが、これは %USERPROFILE%\Favorites という文字列だ。

セキュリティパッチを再起動せずに連続適用する(QChain)

MBSA で一括してダウンロードしたセキュリティパッチを再起動なしでまとめて適用するときに、Qchainを利用します。

C:\TEMP> Q123456_w2k_sp4_x86.exe /Z /M
C:\TEMP> Q123321_w2k_sp4_x86.exe /Z /M
C:\TEMP> Q123789_w2k_sp4_x86.exe /Z /M
C:\TEMP> qchain.exe
    ← ここでコンピュータを再起動

参考資料

NTPでシステム時計を自動修正する。Microsoft以外のNTPサービスを使う

Windows Timeサービスは、コンピュータ起動時、それ以降は8時間毎にタイムサーバに接続してシステム時計を修正してくれます。

まず、コントロールパネル → コンピュータの管理 → サービス で「Windows Time」サービスを自動起動(有効)にします。

Windows XPでは、コントロールパネル → 日付と時刻 → インターネット時刻 で外部のタイムサーバを指定できます。

Windows 2000では、コマンドプロンプトでのみ設定可能です。 /setsntp でNTPサーバを設定し、 /querysntp スイッチで通信状況を確認できます。

C:\>net time /setsntp:ntp.jst.mfeed.ad.jp
コマンドは正常に終了しました。
 
C:\>net time /querysntp
現在の SNTP 値:ntp.jst.mfeed.ad.jp
 
コマンドは正常に終了しました。

Windows XPでは標準で time.windows.com が指定されていますが、これを(距離が近く遅延時間の短い)日本国内のタイムサーバに変更します。例えば、ntp.nict.jp や ntp.jst.mfeed.ad.jp と設定します。

ファイル共有利用とカスタマイズ

バッチファイルで共有フォルダをマウントするコマンド

net use X: \\PCNAME\SHARENAME

共有フォルダのマウントを解除する場合は

net use X: /delete

マウント済みの共有フォルダ一覧を表示するには

net use

共有フォルダとして公開している共有名一覧を表示するには、自サーバの場合は(管理共有も表示可能なため)アドミニストレータ権限で、リモートの場合はユーザ権限でも可能。

net share
net view \\PCNAME

@IT : コマンド・プロンプトでファイル共有を管理する

@IT : デフォルト共有(管理共有)を停止させる方法

Windows XPログイン画面のカスタマイズ

LOGONUIの入れ替え

Windowsログイン画面のプログラム(logonui.exe)を、例えばdeviantArt, ThemeXPなどより入手する。

logonui.exeを任意のフォルダにコピーする。(一般的には、C:\Windows\Resources に Logon というフォルダを作成して、その中にファイル名を変えて保存する)

ここでは、例えばの例として、C:\Windows\Resources\Logon\test.exe という名前で保存したとする。
レジストリエディタで次のキーの値を変更する。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon]
"UIHost"="%windir%\\Resources\\Logon\\test.exe"

リブートの必要性はなく、このレジストリ値を変更後、ログオフするだけでログイン画面が変更される。

元の画面に戻すには、次のように元通りの値に戻しておけばよい。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon]
"UIHost"="logonui.exe"

スクリーンセーバなどの変更

次のレジストリでログオン画面周りの設定が可能。

Windows Registry Editor Version 5.00
 
[HKEY_USERS\.DEFAULT\Control Panel\Desktop]
"ScreenSaveTimeOut"="600"
"SCRNSAVE.EXE"="logon.scr"
"TileWallpaper"="0"
"Wallpaper"="(None)"
 
[HKEY_USERS\.DEFAULT\Control Panel\Keyboard]
"InitialKeyboardIndicators"="0"
  •  TileWallpaper  0:中央表示、1:並べて表示
  •  Wallpaper  壁紙のBMPファイルへのフルパス
  •  SCRNSAVE.EXE  スクリーンセーバのファイル名
  •  InitialKeyboardIndicators  0:NumLock OFF、2:NumLock ON

コモンダイアログのプレースバー項目の変更

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32\PlacesBar]
"Place0"=dword:00000011
"Place1"=dword:00000000
"Place2"=dword:00000005
"Place3"=dword:0000002e
"Place4"=dword:00000008

設定出来る値の主なものは

値(HEX)場所
0デスクトップ
5マイドキュメント
6お気に入り
8履歴
cマイ ミュージック
11マイコンピュータ
12マイネットワーク
28ユーザディレクトリ
2e共有ドキュメント

設定値の全てのリストは、マイコミジャーナル:Windows XPスマートチューニングに記載されている。

任意のフォルダを指定するには、次のようにする。

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32\PlacesBar]
"Place0"="C:\Windows\Temp"

Microsoft Officeのコモンダイアログのプレースバー

Microsoft Officeのプレースバーは、独自の設定を持っていて、次のレジストリで設定する。(これはOffice2000の例)

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\StandardPlaces\Desktop]
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\StandardPlaces\Favorites]
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\StandardPlaces\MyDocuments]
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\StandardPlaces\Publishing]
"Show"=dword:00000000
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\StandardPlaces\Recent]
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\UserDefinedPlaces]
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places\UserDefinedPlaces\Place0]
"Name"="表示名"
"Path"="C:\\ディレクトリ"
"SortAscending"=dword:00000001
"Index"=dword:00000000

 StandardPlaces では、システム規定の場所を指定している。それぞれ次のような意味がある。

  • Desktop : デスクトップ
  • Favorites : お気に入り
  • MyDocuments : マイドキュメント
  • Publishing : マイネットワーク
  • Recent : 履歴

これらの項目を表示したくないときは、そのキーに値(DWORD) Show を作り、0を入力する。

ユーザ独自のフォルダを項目に加える場合は、 UserDefinedPlaces にPlace0~Place3を作成して、Name, Pathという文字列を作成して表示名とフォルダを設定する。

Microsoft KB826214 : Office の [ファイルを開く] および [名前を付けて保存] ダイアログ ボックスの [マイ プレース] バーをカスタマイズする方法

コマンドプロンプトのカスタマイズ

パス名、ディレクトリ名の自動補完

コマンドプロンプト(cmd.exe)でパス名、ディレクトリ名をショートカットキーで自動補完する方法は、@IT : コマンド・プロンプトで入力補完機能を使う方法 に詳しく書かれている。

また、Microsoft PowerToys for Windows XP の Tweak UI というツールでも設定可能。

設定レジストリは次のようになる。(次の例ではTABキーに割り付けている)

Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"CompletionChar"=dword:00000009
"PathCompletionChar"=dword:00000009

また、WindowsではLinuxのbashのような履歴検索は出来ないが、F7キーで履歴を表示出来る。

@IT : コマンド・プロンプトの履歴機能を活用する

エクスプローラで Open Command Window Here メニューを作る

Microsoft PowerToys for Windows XP の Open Command Window Here ツールをインストールする。

または、次のレジストリ キーを作成する。(上記のツールをインストールしたときのレジストリキーをエクスポートしたもの)

Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="Open Command Window Here"
 
[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""

@IT : エクスプローラでカレント・フォルダを選択してコマンド・プロンプトを開く

Windowsの組織名・所有者を変更する

systeminfoコマンドなどで表示される組織名・所有者を変更する。次の紅で着色した部分が変更する場所。

C:\>systeminfo
ホスト名:               MYPC
OS 名:                  Microsoft Windows XP Professional
OS バージョン:          5.1.2600 Service Pack 3 ビルド 2600
OS 製造元:              Microsoft Corporation
OS 構成:                スタンドアロン ワークステーション
OS ビルドの種類:        Uniprocessor Free
登録されている所有者:   私の名前
登録されている組織:     (株)会社名
プロダクト ID:          00000-000-0000000-00000
最初のインストール日付: 2008/11/29, 10:28:44
システム起動時刻:       1 日、11 時間、28 分、35 秒
システム製造元:         AOPEN_
システム モデル:        AWRDACPI
システムの種類:         X86-based PC
プロセッサ:             1 プロセッサインストール済みです。
                        [01]: x86 Family 6 Model 13 Stepping 8 GenuineIntel ~1862 Mhz
BIOS バージョン:        AOpen  - 42302e31
Windows ディレクトリ:   C:\WINDOWS
システム ディレクトリ:  C:\WINDOWS\system32
起動デバイス:           \Device\HarddiskVolume14
システム ロケール:      ja;Japanese
入力ロケール:           ja;Japanese
タイム ゾーン:          (GMT+09:00) Osaka, Sapporo, Tokyo
物理メモリの合計:       2,039 MB
利用できる物理メモリ:   1,162 MB
仮想メモリ: 最大サイズ: 2,048 MB
仮想メモリ: 利用可能:   2,007 MB
仮想メモリ: 使用中:     41 MB
ページ ファイルの場所:  C:\pagefile.sys
ドメイン:               WORKGROUP
ログオン サーバー:      \\MYPC

レジストリの次の位置を修正する。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"RegisteredOrganization"="(株)会社名"
"RegisteredOwner"="私の名前"

ファイル関連付けのカスタマイズ

メールアドレスの関連付けの変更。ダミー プログラムの登録

セキュリティ対策のため、ブラウザでメールアドレスをクリック時に「ダミープログラム」が起動するようにするために、ダミーのメールクライアントをシステムに登録する。

レジストリ [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail] 以下の他のメールクライアントの設定をコピーして、例えばnotepadを開くようにしておけば安全。

CD, DVD関連のカスタマイズ

ユーザ権限でCD,DVDのSPTIを用いた読み書きを行う

CD,DVDイメージの読み書きを行うImgBurnやDVD Fabといったアプリケーションが用いるSPTIドライバは、標準ではアドミニストレータ権限が必要。ユーザ権限で使いたい場合は、セキュリティ権限を変更する。

Administrator権限で secpol.msc を実行するか、マネジメントコンソール mmc.exe を起動して、グループポリシー オブジェクトエディタを追加して表示される「セキュリティの設定」を開く。
「ローカル ポリシー」を展開し、「セキュリティ オプション」の中にあるポリシー『CD-ROM へのアクセスを、ローカル ログオン ユーザー だけに制限する』を無効から有効に切り替える。
再ログオンすれば、CD,DVDドライブが利用できるようになる。

Windows 2000のみに通用するカスタマイズ

Windows NT のシステムポリシー エディタを Windows2000で使う

※ このセクションの方法をとらず、通常は、グループポリシー エディタを利用して下さい。グループポリシー エディタはmmc.exeを起動して、ローカル・グループ・ポリシーのスナップインを追加して利用します。

システムポリシー エディタの入手方法は2種類あります。

  • Windows NT ver 4.0 の CD-ROM から POLEDIT.* のファイルおよび *.adm のファイルを解凍する
  • Microsoft Office 2000 Resource Kit (英語版) より、Office Resource Kit core tool set (ORKTools.exe) をダウンロードして、ポリシーエディタ部分を抽出する

抽出したファイルを、システムフォルダにコピーします。

  • POLEDIT.EXE を C:\WINNT\ にコピー
  • POLEDIT.HLP を C:\WINNT\ にコピー
  • POLEDIT.CNT を C:\WINNT\ にコピー
  • COMMON.ADM を C:\WINNT\INF\ にコピー
  • WINNT.ADM を C:\WINNT\INF\ にコピー

Windows 2000 と 98 のデュアルブート環境などで、起動ディスクがWindows 98 の場合、Windowsのパス参照環境変数が C:\AUTOEXEC.BATの内容を取り込んでいる場合があります。(この設定は、ポリシーエディタで修正することが可能です。)
このような場合、ポリシーエディタ本体はWindows 98のポリシーエディタのあるパスより検索順位の高いパスに入れます。

Windows 98 のポリシーエディタを起動すると、表示項目が一部少なくなります。(使用してみた感じでは、特に悪影響は無いように思えますが...)

初めて起動するとCOMMON.ADMとWINNT.ADMのパスを聞いてきますので、指定します。
次に、「ファイル」メニューの「レジストリを開く」を実行します。
現在利用中のユーザのポリシーは、「ユーザ」のアイコンをダブルクリックすると編集できます。必要な設定を行ったら、「ファイル」-「上書き保存」を実行します。

Windows2000のUser権限でFAX送信できない

C:\Documents and Settings\All Users\Application Data\Microsoft の周辺にある FAX キュー・フォルダのアクセス権を与えれば解決。

(標準では Administrators に全権が与えられているが、これを Everyone に与えればOK)

Windows 2000の「別のユーザとして実行」でファイル エクスプローラが実行できない

RunASサービスが起動していない場合は、起動します。(コントロールパネル → 管理ツール → サービス)

Explorer の 「ツール」メニューの「フォルダオプション」を開き、 「表示」タブの「別のプロセスでフォルダウインドウを開く」をチェックする。 ("現在のユーザ"と"別のユーザ"の双方で)

※ Internet Explorer はこの機能を使って開かないことをお勧めします。(やってしまった場合の不具合修正は、このページ内『Internet Explorer「お気に入り」フォルダの意図しない移動』に掲載しています)