読者です 読者をやめる 読者になる 読者になる

tmori3y2のブログ

主にWindowsのプログラムなど

特定のプログラム実行中にスリープやWindows Updateによる再起動をしないようにPCを構成する・・・って出来なかった

Windows開発全般 Windows 10 Windows Update

お詫び (2017/02/13)

本文中、powercfg /requestsoverrideの機能の意味が逆でした。リファレンスをみると電源要求するとも読み取れますが、電源要求を取り下げる機能でした。

内容を差し替えるまでお待ちください。

タイトル修正

旧: 特定のプログラム実行中にスリープやWindows Updateによる再起動をしないようにPCを構成する

新: 特定のプログラム実行中にスリープやWindows Updateによる再起動をしないようにPCを構成する・・・って出来なかった

修正版?は以下を参照。

tmori3y2.hatenablog.com

tmori3y2.hatenablog.com

—— 以下の記事には誤りが含まれます

tmori3y2.hatenablog.com

MSDNサブスクリプションWindows 10 Version 1607の2017/01版がアップされたので、初期バージョンが消えるかも」

という書き込みをしましたが、良く見るとWindows 10 (Multiple Editions), Version 1607で残っているのはローカライズ版だけです。

「つまり、English版は消えました」

まあ、CB版はうちはサポートしませんから良いんですが、評価は新しいCBB版でしないと・・・

念のため、自宅でメディアクリエーションツールで作成したWindows 10メディアの中身を確認するために以下のコマンドで、高圧縮のinstall.esdをwimに変換。

c:\WIM>Dism /Export-Image /SourceImageFile:install.esd /SourceIndex:1 /DestinationImageFile:install.wim /Compress:max /CheckIntegrity

時間がかかるので放置して寝ました。

朝、見るとスリープしていて45%で停止・・・

最近、職場でWindows Updateによる再起動について、いろいろ話題になっていますが、特定のプログラムを実行中にスリープしたり、Windows Updateによる再起動したりするのを阻止するコマンドというのを同僚に教えてもらったので、おまじないをかけました。

Powercfg のコマンド ライン オプション

c:\WIM>powercfg /requestsoverride PROCESS dism.exe SYSTEM

c:\WIM>powercfg /requestsoverride
[SERVICE]

[PROCESS]
dism.exe SYSTEM

[DRIVER]

再実行して、帰宅すると、PCはスリープしていましたが、無事変換は完了。(2017/02/13 このコマンドはスリープ阻害要因を強制的に削除する逆の意味のコマンドでした。おそらく、メディア共有などが昼間は有効になる場合があるので、それで延長されたようです)

VHDにApply-ImageしてGet-Pakagesをしましたが、まだ初期バージョンのままでした。

ちなみに、おまじないをかけたプロセスを実行中に、Windows Updateが適用されて、アクティブ時間外になると、プロセスが終了したときに再起動がかかるそうですが、再起動時間を指定してその日時になったとき、プロセスを起動したまま1週間放置したとき、手動で再起動したときは、再起動は阻止できないそうです。(同僚の受け売り)

2017/02/07 追記

メディアクリエーションツール起動して、powercfg /requestsを実行すると、実行中のスリーブの阻害要因として登録が確認できましたが、Dismを実行して確認したところ、実行中の阻害要因として表示されません。

処理時間的には阻害できないとスリーブする時間だが、たまたま失敗しなかっただけなのか?

子プロセスのDismを登録したのがまずかったのか?

実はWindows 10だと登録が上手くいかないとか?? (API経由だけとか?)

Power Management Functions (Windows)

スリーブする直前に評価されるのかな?

そう言えば、電源繋いでるときにスリーブしない設定なのに、スリーブして処理が止まるのは、前から気になってた。そもそも、それがおかしい。