タグ「無効」が付けられているもの

最近のパソコンはBIOS(UEFI)で起動時のNumLockの有効/無効の設定ができないものがあるようです。

Windowsパソコンにログインでパスワードを入力しようとするとき、いつもNum Lockをオンにすることを忘れていてイラっとすることがあります。いちいちNum Lockボタンを押さなくてもいいようになんかいい方法がないかと探してみたらレジストリの設定でできることがわかりましたのでメモ。

Windows10/8.1/7共にレジストリの場所は共通のようです。(値は違いがあるようです。)

レジストリ

  • HKEY_USERS\.DEFAULT\Control Panel\Keyboard

ここにあるInitialKeyboardIndicatorsの値を変更します。

Windows10/8.1

2147483648(デフォルト)

 ↓

2147483650(NumLock有効)

(または2でもいいみたいです。)

Windows8

2147483648(デフォルト)

 ↓

80000002(NumLock有効)

(または2でもいいみたいです。)

Windows7

2147483648(デフォルト)

 ↓

2(NumLock有効)

0(NumLock無効)

ログオン前とログオン後

ログオン前の設定はHKEY_USERS\.DEFAULTをいじればいいみたいですが、ログオン後のNum LockはHKEY_CURRENT_USER\Control Panel\KeyboardにあるInitialKeyboardIndicatorsをいじればいいようです。

ちなみに、HKEY_USERS\.DEFAULTでは2147483648となっているのにHKEY_CURRENT_USER\Control Panel\KeyboardInitialKeyboardIndicatorsを見てみると2になっていました。

まだ試してないのでわからないのですが、Num Lockをオンにする数値は214748365080000002でなくても2だけでいいのかもしれません。

Java Runtime Environment(JRE)をインストールする際、バージョンによっていろんなツールバーや、アプリケーションをインストールされそうになります。

そのオプションを必ず選択しないとインストールができないようになっていたりすることもありますが、コマンドラインからサイレントインストールするか、以下の方法で回避できることを知りました。

構成ファイルを作り、インストールファイルのパスにINSTALLCFG=**を付けて構成ファイルを指定してインストールする方法です。

例えば、ダウンロードしたjre-8u101-windows-i586.exeと以下のようなインストールのセッティングファイル(仮にinstall.cfgとして)をテキストエディタで作成し、Cドライブにjreというフォルダを作って置いたとします。

以下のコマンドをコマンドプロンプトで実行するだけ

C:\jre\jre-8u101-windows-i586.exe INSTALLCFG=C:\jre\install.cfg

インストール構成ファイルの内容 install.cfg(仮)

SPONSORS=Disable
REMOVEOUTOFDATEJRES=1 
  • SPONSORS=Disableの部分が余計なツールバーとかを無視する部分です。
  • REMOVEOUTOFDATEJRES=1は古いバージョンを削除します。

内容については以下を参考にしてください。

スクリーンショット

そして実行した画面はこちら↓

オプションを選択する画面が出てこないままインストールが完了しました!

全部指定するとき用にメモ

INSTALL_SILENT=Disable
INSTALLDIR=
STATIC=Disable
AUTO_UPDATE=Enable
WEB_JAVA=Enable
WEB_JAVA_SECURITY_LEVEL=VH
WEB_ANALYTICS=Disable
EULA=Enable
REBOOT=Disable
NOSTARTMENU=Disable
SPONSORS=Disable
REMOVEOUTOFDATEJRES=1

INSTALL_SILENT=Enableにしてサイレントインストールしたり、AUTO_UPDATE=Disableにして自動更新を無効にしたりもできるようです。

バッチファイル

繰り返しインストール作業をする場合のバッチファイルのメモ。

このバッチファイルとインストーラーと構成ファイルをセットにしておけば、どの階層に置いていても簡単に実行できます。

@echo off

echo.
echo ===============================================
echo Java Runtime Environmentをインストールをします。
echo ===============================================
echo.

rem ----- 環境変数 -----
set PARAMETER=jre-8u101-windows-i586.exe
set CONFIGFILE=install.cfg

rem ----- インストール -----
%~dp0%PARAMETER% INSTALLCFG=%~dp0%CONFIGFILE%

pause

exit

コマンドラインでインストールする方法はこちら↓

Windows7・Windows8/8.1からWindows10に自動でアップデートさせないためのメモ

削除する更新ファイル

「コントロール パネル」-「すべてのコントロール パネル項目」-「プログラムと機能」の画面の左にある『インストールされた更新プログラムを表示】からアンインストールできます。

特にKB3035583GWX.exe(画面右下のタスクバーの四角いWindowsマーク)は必ず削除

あとは正直、何の更新ファイルかよくわかりませんが、Windows10関連らしいのでついでに削除。

Windows7

Windows8/8.1

※削除しただけではWindows Updateでまた復活してきて自動でインストールされてしまうので、Windows Updateの更新ファイルの一覧に出てきた時点で右クリックして「非表示」を選択してください。非表示にすれば手動でインストールしない限り、自動でインストールされることはありません。

特定の更新ファイルを事前にインストールしないように指定する方法はありません。

ついでに削除&非表示にした方がいいかもしれない更新ファイル

レジストリでGWX.exeを無効にする

コマンドプロンプトで以下のコマンドを実行するとレジストリを登録できます。

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx /v DisableGwx /t REG_DWORD /d 1 /f

グループポリシーでアップデートを無効にする

Tech TIPS:Windows UpdateによるWindows 10へのアップグレードを「ブロック」する方法 (1/2) - @ITによると、グループポリシーでアップデートをブロック(禁止)するためには以下の更新ファイルのいずれかが適用されていることが必要だそうです。

必要な更新ファイルのインストール

グループポリシーの設定

「コントロールパネル」の検索窓から「グループポリシーの編集」を検索するか、Windows+Rgpedit.mscを実行するとグループポリシーの画面が開きます。

  • [コンピューターの構成]
    • [管理用テンプレート]
    • [Windows コンポーネント]
    • [Windows Update]
    • [Turn off the upgrade to the latest version of Windows through Windows Update]
    • 値:[有効]

レジストリでアップグレードをブロックするコマンド

以下のコマンドをコマンドプロンプトで実行する。

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v DisableOSUpgrade /t REG_DWORD /d 1 /f

全部をバッチファイルで行う

Windows7(32bit)の場合、以下のコマンドを○○.batで実行すると、

  • 不要な更新ファイルの削除
  • 必要な更新ファイルのダウンロードとインストール
  • レジストリの登録
  • ダウンロードファイルとフォルダの削除

を全自動で一度に行えます。(グループポリシーの設定以外)

taskkill /im GWX.exe /f

wusa.exe /uninstall /kb:2952664 /quiet /norestart
wusa.exe /uninstall /kb:3021917 /quiet /norestart
wusa.exe /uninstall /kb:3035583 /quiet /norestart
wusa.exe /uninstall /kb:3138612 /quiet /norestart
wusa.exe /uninstall /kb:3095675 /quiet /norestart

rd /s /q "%windir%System32\GWX"

md c:\InstallKB

bitsadmin.exe /transfer htmlget https://download.microsoft.com/download/0/B/5/0B53EDAE-AB68-4FA6-95EC-6966AD0A16F6/Windows6.1-KB3083710-x86.msu c:\InstallKB\Windows6.1-KB3083710-x86.msu

wusa.exe c:\InstallKB\Windows6.1-KB3083710-x86.msu /extract:c:\InstallKB

pkgmgr.exe /n:c:\InstallKB\Windows6.1-KB3083710-v2-x86.xml /quiet

rd /s /q c:\InstallKB

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Gwx /v DisableGwx /t REG_DWORD /d 00000001 /f

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v DisableOSUpgrade /t REG_DWORD /d 1 /f

使用しているパソコン(Windows8.1)がなぜか毎回起動するとネットワークが接続されていない状態になるので、その度にデバイスマネージャーを開いてネットワークカードを無効・有効にしています。

毎回この作業をするのが面倒くさくなってきたので、簡単にできないかな?と調べたら特定のハードウェアをコマンドで操作するバッチファイルの作り方がありました。Windows Driver Kit (WDK) に含まれるdevcon.exeというものをコマンドで操作すればいいようです。

これを使えば、いろんなデバイスを必要な時だけ簡単にON・OFFができて便利そうです。

Windows Driver Kit (WDK)をインストール

まずはマイクロソフトの以下のページからWindows Driver Kit (WDK)をダウンロードしてインストールすることが必要です。今回の場合はWindows 8.1 Update用をダウンロードしました。インストールするとdevcon.exeC:\Program Files (x86)\Windows Kits\8.1\Tools\の中に32ビット・64ビット用がそれぞれ保存されています。

ハードウェアIDを調べる

ハードウェアを操作するためのバッチファイルでハードウェアIDが必要になりますので調べます。

  1. デバイスマネージャーで対象のハードウェアのプロパティを開く
  2. 「詳細」タブの「プロパティ」の欄をハードウェアIDにする
  3. 表示された値をコピーする

バッチファイルを作る

テキストエディタを開き、以下のようにコマンドを作成し、先ほどコピーしたハードウェアIDを貼り付けて、○○.batというように拡張子をbatにして保存します。

:: devcon.exeのパス(OSが64bitの場合)
@set DEVCON="C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\devcon.exe"
 
:: ネットワークカードの無効と有効
:: Intel(R) 82578DC Gigabit Network Connection

%DEVCON% disable "PCI\VEN_8086&DEV_10F0&SUBSYS_00751B0A&REV_05"
%DEVCON% enable "PCI\VEN_8086&DEV_10F0&SUBSYS_00751B0A&REV_05"

管理者として実行

バッチファイルの実行は管理者として実行しないと有効に動作しません。

なので起動時や定期的に実行したい場合はスタートアップに登録するのではなくタスクスケジューラに登録し管理者権限で実行するように設定することが必要です。

その他参考

Vistaを導入して、XPで使っていたアプリをインストールしていくうちに

スタートアップに登録した「RealVNCサーバ」がVistaのUACとかいうやつブロックされて

スタートアップできない状況に陥った。

 

このUACを無効にすることで回避はできるが、

なんだか他のことで何か悪いことがおこりそうで不安。

なおかつ、セキュリティー上よくないよみたいなメッセージがでてきて面倒くさい。

 

なんとかUACを有効なまま、

スタートアップに登録したアプリを起動させたいと調べたら

「タスクスケジューラ」で解決できることが分かった。

 

場所は

「すべてのプログラム」-「アクセサリ」-「システムツール」-「タスクスケジューラ」

 

画面右の「基本タスクの作成」でウィザードに従って内容を記入するとOK

ちなみにRealVNCの場合。

 

【名前】RealVNC4

【説明】RealVNCサーバの起動

【トリガ】コンピュータの起動時

【操作】プログラムの開始

【プログラム】"C:\Program Files\RealVNC\winvnc4.exe"

【引数の追加】-noconsole

 

これで無事解決。

 

タスクスケジューラと言えばWindows95やWindows98の時代に使用していた記憶があります。

 

その他ですが、

サービスを簡単に登録できるフリーソフトもついでに見つけました。

今回のRealVNCには使えませんでしたが、

他のことに使えそうです。

 

ServiceInstaller
http://www.vector.co.jp/soft/winnt/util/se268387.html

とにかく解決できてよかったです。