• Windows 10 Home でも確実に自動更新を止めることのできるフリーソフト

    2018-10-14 16:09

    Windows 10 Proはローカルグループポリシーで自動更新を制御することができますが、Windows 10 Homeにはローカルグループポリシーエディターが存在しないどころか、自動更新のポリシーに対応するレジストリを、レジストリエディターで直接変更しても無視されてしまいます。

    Windows Updateサービスを無効にすることによって、無理やり止めることは可能です。

    ただしこの方法は、知らない間にWindows Updateサービスが復活する恐れがあります。

    これを何度も停止させ続けるという力業をする「Windows10 設定変更ツール」というフリーソフトがあります。
    スケジュール機能や、特定のソフトの起動時のみ無効などの便利な機能が備わっています。
    詳しい使い方については、「ぼくんちのTV別館」さんの記事を紹介します。
    https://freesoft.tvbok.com/win10/tips_and_tools/home_windows_update_disabled.html


    ここでは上記とは異なり、便利な機能はないけど確実にWindows Updateを停止させることのできる「Windows 10 Updater Disabler」について紹介します。
    後述する理由により、単純に停止させるだけの機能が欲しい人はこちらの方をお勧めします。

    Windows 10 Updater Disabler - Winaero
    https://winaero.com/blog/windows-10-update-disabler-disables-windows-10-updates-reliably/

    このソフトはサービスとして動作し、自動更新周りのスケジュールを無効にしたり、非公開APIを使用して、Windowsがシャットダウン中であると誤認識させてWindows Updateを動かせさせないという手段を用いているようです。

    以下私によるGoogle翻訳を交えたReadme.txtの適当な日本語訳デス。

    Windows Update Disabler Service

    Created by PainteR, 2016
    Many thanks to Tihiy
    入手先: http://winaero.com/blog/windows-10-update-disabler-disables-windows-10-updates-reliably

    予期しないWindows 10の再起動やバッテリの停電時間が短いことに慣れてしまったあなたに朗報です!

    Windows Update DisablerはWindows 10の更新を無効にすることができます。
    これは私の個人的なニーズに合わせて作られたシンプルなアプリで、サービスとして動作します。

    OOSU10のようなほかの同様のアプリとは、どのように異なっているのか気になりますか?

    1. オペレーティングシステムがあなたの了承なしに1日おきに上書きするようなレジストリ値に依存しません
    2. ユーザーのログイン時にスケジュールされたすべてのタスクとWindows Updateを無効にします。
    3. 文書化されていないシステムコールを使用してWindows Updateの状態をチェックし、直ちに終了させようとします。
    4. 再起動を要求しません。

    追伸: このアプリは十分に公開テストされていません。

    使用方法
    1. ファイルを適当なフォルダーへコピーします。
    2. そのフォルダで昇格したコマンドプロンプトを開きます。
    3. 次のコマンドを入力または貼り付けます
    UpdateDisabler -install

    削除方法
    1. UpdateDisabler.exeのあるフォルダで昇格したコマンドプロンプトを開きます。
    2. 次のコマンドを入力または貼り付けます
    UpdateDisabler -remove

    Update Disablerをインストールした状態で、Windows Updateをしたい場合は、サービスを開いて、「Update Disabler Service」を停止させましょう。
    ちなみに、Update Disablerが停止させるのはUpdate Service Orchestrator(Windows 10に備わっている公式のWindows Updateクライアント)のようで、Windows Updateサービス自体は正常に動いており、Update Disabler Serviceが動いていても、Windows Update MiniToolなどのサードパーティ製クライアントでなら、スキャンおよびインストールすることができます。


  • 広告
  • Win10のアップグレード(大型アップデート)は何か月後ぐらいにするのが安全なのか

    2018-10-08 16:48

    Windows 10のインストールイメージは、ISOイメージのほかに、MediaCreationToolやWindowsUpdate、更新アシスタントがダウンロードするために、より高圧縮にされたESDイメージというものがサーバー上に存在しています。(サーバー上に存在しているESDイメージは暗号化されており、それらのツールがダウンロードするときに復号化されるようです。)

    ISOとは異なり、ESDの方は、しばらくすると更新プログラム適用済みのものが公開されているようです。リリース直後の不具合を解消するためでしょうかね?じゃあなぜISOの方は更新しないのかというとわかりません(´・ω・`)

    とあるサイトに、これまでのESDイメージのリンクが載っていたので、2018年10月8日時点での一覧を下に載せます。

    バージョンアップデート名コードネームビルド時期ビルド番号
    1507Threshold 12015/710240.16384
    2015/810240.16393
    1511November UpdateThreshold 22015/1110586.0
    2016/210586.104
    2016/410586.164
    1607Anniversary UpdateRedstone 12016/714393.0
    2017/614393.447
    1703Creators UpdateRedstone 22017/315063.0
    2017/615063.413
    2017/715063.483
    1709Fall Creators UpdateRedstone 32017/916299.15
    2017/1116299.64
    2017/1216299.125
    1803April 2018 UpdateRedstone 42018/317133.1
    2018/417134.1
    2018/717134.112
    1809October 2018 UpdateRedstone 52018/917763.1

    ちなみにビルド番号の規則は「年の下2桁+月」。
    あれれ~?2つくらいバージョンの下2桁(月)とアップデート名が不一致なのがあるぞ~???

    ビルドされた時期と、実際に公開された時期にはずれがあります。
    赤字は不具合を理由に配信が取り消されたものです。

    上記の一覧から最初のバージョンが公開されてからだいたい何か月後ぐらいに更新プログラム適用済みのイメージが公開されるのかを見てみましょう。

    1507(TH1): 1か月後
    1511(TH2): 3か月後
    1607(RS1): 11か月後
    1703(RS2): 3か月後
    1709(RS3): 3か月後
    1803(RS4): 3か月後 (17133は取り消しなので実質3か月後)
    1809(RS5): ?

    1607が11か月後であることと、次の1703との間が空いているのはWindows Server 2016(RS1ベース)の開発との兼ね合いが原因かと思われます。

    3か月後に公開したその1か月後にイメージを更新しているパターンもあります。
    この傾向からして、新バージョンが公開されてから約4か月後にアップグレードするのが安全なのかなと思います。


    この一覧を眺めてみると、一つだけ異質なのがあります。
    もっとも最初のバージョンである1507のビルド番号のマイナー番号がとても高いということです。
    一番最初のWin10であることも相まってか、正式に公開するまでに何度も更新を重ねてあることがうかがえると同時に、いかに慎重だったのかが分かります。

    1507以降は、ビルドしてからそんなに更新することなく公開していることが分かります。
    1511はまだマシだったと記憶していますが、Redstone以降は、公開されてからすぐにアップデートすると、だいたい不具合に見舞われて安全にPCが扱えたためしがないです。
    しかも直近の1809と1803は配信取り消しという失態をおかしています。

    私は、1607で起動不良を起こす不具合に見舞われて以降、アップグレードには慎重な対応をとるようにしました。

    RS1が約1年かけてマイナー番号が0から447になったのに対して、RS2は3か月で0から413と、何気にこいつもバグだらけだったんですねぇ…。

    ちなみにWindows Server 2016の次はWindows Server 2019で、RS5がベースらしい…まあ、今後のアップデート次第でよくなると信じましょうかね(´・ω・`)


  • Win8.1の削除できないKB2976978のアンインストール

    2018-10-04 14:54

    KB2976978は何度もバージョンアップを繰り返し、また、古いバージョンの差分も保持されるので、KB2976978を削除したのに、またKB2976978が一覧に表示されるという現象は、最新のKB2976978を消したけど、古いバージョンのKB2976978がまだ残っているよというもの。

    繰り返しKB2976978を消すことで完全に消すことができるが、最終的にアンインストールできない環境もある。
    http://ch.nicovideo.jp/lunaorbit/blomaga/ar1295857

    そんなKB2976978を完全に消し去る方法を発見した。
    とあるツールで、Adobe FlashやCortanaなどを消すことができ、その仕組みを調べてみて、これを応用すればKB2976978も消せるのでは?と思い試してみたところ、消すことに成功した。

    作業に取り掛かる前に、アンインストール可能なKB2976978はすべて消しておく。
    なお、以下の手段を用いてもアンインストールできない更新プログラム(KB3003057など)も存在しているので、アンインストールすることができると確認できたKB2976978以外では試さない方が良い。


    一つ一つ手作業で消す方法

    ・消えないKB2976978のパッケージIDを確認
    DISM /Online /Get-Packages | find "KB2976978"

    ・regeditを起動し「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages」キーの中から消えないKB2976978のパッケージIDと一致するサブキーを探す

    ・消えないKB2976978のパッケージIDと一致するキーの中のOwnersサブキーの所有者をAdministratorsに変更し、Administratorsのアクセス許可をフルコントロールにする

    ・Ownersキーの中に、パッケージIDと一致する値があるので、その値を20070(16進数)にする(Ownersキーそのものを消してもよい)

    ・DISMで消えないKB2976978を消す
    DISM /Online /Remove-Package /PackageName:<消えないKB2976978のID>

    注意: Ownersキーの親キーに格納されている値は、変更するとパッケージ情報が壊れてしまう値があり、元の値に戻しても情報が読み取れなくなって、アンインストールすることができなくなったりするので触らない方が良い。


    install_wim_tweak.exe を使用する方法
    本来は非表示にされているパッケージを扱うツール。
    install_wim_tweakはソースコードが公開されており、簡単に目を通した限り、特に怪しい処理はなさそう。installって名前がついてるけど特に何かをインストールするというものではない。
    https://msfn.org/board/topic/152688-win6x_registry_tweak/

    ・上記のサイトにあるダウンロードリンクは、リンク切れなので以下から入手する
    htps://winaero.com/blog/how-to-uninstall-and-remove-cortana-in-windows-10/

    ※上記のサイトから入手した場合、付属しているバッチはcortanaを削除するためのバッチなので注意(と言ってもWin8.1上でなら誤って動かしても全く問題にならない)
    ちなみにWin10バージョン1703で試してみたらスタートメニューが正常に動作しなくなってしまった。

    ・管理者としてコマンドプロンプトを実行し、以下のコマンドで削除する
    install_wim_tweak.exe /o /c Package_for_KB2976978 /r


    ところで、以前複数のバージョンのKB2976978を一括で削除するバッチを作ったことがあります。
    今回、バッチではレジストリの所有者を変更するのができず、SubInAclをインストールすればバッチでもできなくはないが、難しそうなので、C#でKB2976978を削除するプログラムを組んでみました。(結局C#でもWin32API呼び出しが必要だったりと、結構難しかったが…)
    https://github.com/shiromichi/RemoveCompatUpdate

    とりあえずアンインストール不可なKB2976978をアンインストール可に変更し、かつ一括でKB2976978をアンインストールすることができるようになっていますが、細かい調整がまだなので、ビルド済みバイナリの配布はまだです。