連載
» 2018年05月08日 05時00分 公開

その知識、ホントに正しい? Windowsにまつわる都市伝説(109):Windows 10 バージョン1709からのシャットダウン/再起動の新仕様、どうしよう? (2/2)

[山市良,テクニカルライター]
前のページへ 1|2       

分かりにくい仕様変更を“見える化”してみた

 Windows 10 バージョン1709のもともとの新仕様では、「更新または再起動の後にサインイン情報を使ってデバイスのセットアップを自動的に完了します」のオン/オフに関係なく、登録アプリケーションの自動開始をストップすることはできませんでした(後述しますが自動開始しない代替策はあります)。それが、KB4073291(OSビルド16299.201)の変更により、「更新または再起動の後にサインイン情報を使ってデバイスのセットアップを自動的に完了します」をオフにした場合に、通常のシャットダウンや再起動では登録アプリケーションを自動開始しない(自動開始用にアプリケーションを登録しない)挙動に変わります。

 上記のブログ記事では少々分かりにくいかもしれません。そこで実際の動きを追いかけてみましょう。シャットダウンや再起動時のアプリケーション(繰り返しますがアプリケーション側の対応も必要です)の自動開始は、レジストリの以下の場所に「Application Restart #n」(nは0からの番号)という値を作成し、自動起動するアプリケーションのコマンドラインを保存することで行われます。

  • HKEY_CURRENT_USER(HKCU)\Software\Microsoft\Windows\CurrentVersion\RunOnce

 KB4073291(OSビルド16299.201)以降は、「更新または再起動の後にサインイン情報を使ってデバイスのセットアップを自動的に完了します」をオフにすると、このレジストリ値を作成しなくなります。オンの場合の挙動は変わりません。また、このオプションをオフにする代わりに、「コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows ログオンのオプション\システムによる再起動後に自動的に前回の対話ユーザーでサインインする」ポリシーを「無効」にすることで同様の設定を行うこともできます。

 「Application Restart #n」がユーザーのレジストリに作成されるのは、シャットダウンや再起動時であり、次回サインイン後には削除されてしまうため、通常の方法でレジストリエディターや「REG」コマンドで参照するのは困難です。Windows Sysinternalsの「Autoruns」を使用すると、このレジストリの存在を確認できます。

 このAutorunsは、システムおよびユーザーのさまざまな場所(レジストリ、サービス、スタートアップフォルダ、ログオンスクリプト、タスク、Internet Explorerのプラグインなど)に設定された自動開始エントリを参照できるツールです。現在、サインイン中のユーザーとは別のユーザーの自動開始エントリを調査することもできます。

 さて、管理者ユーザーを新規作成したら、現在のユーザーで「更新または再起動の後にサインイン情報を使ってデバイスのセットアップを自動的に完了します」をオフにし、「レジストリエディター」や「ペイント」(自動開始に対応したアプリケーション)を開いた状態のまま再起動します。

 自動サインインは無効にしたので、再起動後、先ほど作成した管理者ユーザーの資格情報でサインインし、Autorunsを実行して、調べたいユーザーの自動開始エントリをスキャンします。なお、別ユーザーの目的のレジストリを調べるには、Autorunsを管理者として実行する必要があります。また、空のエントリを参照するために「Options」メニューの「Hide Empty Locations」をクリアする必要があります。

 最新状態に更新されたWindows 10 バージョン1709(つまり、16299.201以降)の場合、「HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce」には「Application Restart #n」の値が存在しないことが分かります(画面4)。レジストリに自動開始アプリケーションが登録されていないため、サインイン時に自動開始するものはありません。

画面4 画面4 最新に更新されたWindows 10 バージョン1709では、自動サインインオプションをオフにすると、ユーザーのレジストリのRunOnceに自動開始エントリは作成されない(この例ではlocaladmin2が現在サインイン中の新しいユーザー、localadminが調べたいユーザー)

 一方、2018年1月の仕様変更の前(16299.192以前、今回は新規インストール直後の16299.15で確認)は、自動サインインのオプションをオフにしても「Application Restart #n」が作成されているのが分かります(画面5)。2018年1月の仕様変更の前は、自動サインインのオプションをオフにしても、登録アプリケーションが自動開始されることが分かるでしょう。

画面5 画面5 Windows 10 バージョン1709のもともとの仕様(16299.192以前)では、自動サインインオプションをオフにしても、「Application Restart #n」が登録される

実は、もともとの仕様でもアプリケーションの自動開始をストップする方法はあった

 実は、Windows 10 バージョン1709のもともとの仕様でも、「shutdown」コマンドを使用してシャットダウン(/s)または再起動(/r)を実行すれば、自動開始用のアプリケーションが登録されることはありません(すぐに開始したい場合はさらに/t 0を追加)。

shutdown /s

shutdown /r


 自動開始用にアプリケーションを登録してシャットダウンまたは再起動するには、次のオプションを使用します。再起動オプション(/g)は、Windows Vistaから存在するオプションです。シャットダウンオプション(/sg)は、Windows 10 バージョン1709で追加されたものです(画面6)。

shutdown /sg

shutdown /g


画面6 画面6 「/sg」「/g」オプションのヘルプの説明に注意。「g」オプションは決してシステムがユーザーにお願いしているわけではない

 なお、shutdownコマンドのヘルプ(/?)の説明は、同じ英文がオプションによって異なる日本語で訳されています。どちらも“システムに対して登録アプリケーションの自動開始を指示する(自動開始用にアプリケーションの登録を指示する)”オプションと理解してください。また、「登録したアプリケーションを再起動」は「登録されたアプリケーションを再開」の方が適切でしょう。

 これらのコマンドは、「更新または再起動の後にサインイン情報を使ってデバイスのセットアップを自動的に完了します」のオン/オフとは関係なく機能します。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。