コマンドでPCをスリープや休止状態にする方法を紹介します。リモートデスクトップで接続中はスタートメニューで「ログオフ」、「切断」、「ロック」しか選択できないため、ここで紹介する方法が役に立つことがあります。
逆にリモートのマシンを起動したい場合には、以下の記事をご覧ください。
Wake On Lan についてのまとめ (リモートのマシンを起動)
※リモートデスクトップで接続中に Ctrl + Alt + End を押すと、接続先で Ctrl + Alt + Del を押した場合と同様に、シャットダウンや再起動、スリープを選択・実行できます。デスクトップで Alt + F4 でも良いです。
※P8Z68 等のマザーボードでは、BIOSの設定で internal PLL overvoltage を Disable にしないとスリープから復帰できないようです。私の環境ではスリープからの復帰時に画面が映りませんでした。(P8Z68-V PRO)
シャットダウン
shutdown コマンドで可能です。
> shutdown /s
30秒後にシャットダウンします。
スリープ・休止 (お勧めしない方法)
以下のコマンドでスリープまたは休止状態へ移行できます。
> rundll32.exe PowrProf.dll,SetSuspendState
- 休止状態機能が有効だと休止状態になります。
- 休止状態機能が無効だとハイブリッドスリープではなく、従来のスタンバイの様な状態になります。
※お勧めしない理由
- この方法でスリープへ移行した場合、ハイブリッドスリープにはなりません。 したがって、電源が切れるとメモリ上のデータが失われます。
- この方法でスリープ(スタンバイ)へ移行した場合、タスクスケジューラからの自動復帰ができないことがあるようです。
手元の Windows7 では問題なく自動復帰できることを確認しました。
■休止状態機能の有効・無効を切り替える方法
コマンドプロンプトを管理者として実行し、次のコマンドを入力する。
有効にする場合
> powercfg /hibernate on
無効にする場合
> powercfg /hibernate off
現在の設定を確認する場合
> powercfg /a
スリープ・休止 (お勧めの方法)
PowrProf.dll の SetSuspendState 関数を適切なパラメータを指定して呼び出します。
この方法だとタスクスケジューラからの自動復帰も問題ありませんし、ハイブリッドスリープと休止を自由に使い分けることができます。
以下の Ruby スクリプトにより可能です。
ダウンロードしてご利用ください。拡張子が exe の方であれば、Ruby をインストールしていなくても実行できます。(Exerbで変換したものです。)
- スリープモードへ移行する場合
require "fiddle/import" require 'fiddle/types' module Powrprof extend Fiddle::Importer dlload 'powrprof.dll' include Fiddle::Win32Types extern "BOOL SetSuspendState(BOOL, BOOL, BOOL)" end Powrprof.SetSuspendState(0, 0, 0)
require 'Win32API' Win32API.new('powrprof.dll', 'SetSuspendState', %w(i i i), 'i').call(0, 0, 0)
ダウンロード
- suspend.rbw (Ruby 2.0)
- suspend.rbw
- suspend.exe
- 休止状態へ移行する場合
require "fiddle/import" require 'fiddle/types' module Powrprof extend Fiddle::Importer dlload 'powrprof.dll' include Fiddle::Win32Types extern "BOOL SetSuspendState(BOOL, BOOL, BOOL)" end Powrprof.SetSuspendState(1, 0, 0)
require 'Win32API' Win32API.new('powrprof.dll', 'SetSuspendState', %w(i i i), 'i').call(1, 0, 0)
ダウンロード
- hibernate.rbw (Ruby 2.0)
- hibernate.rbw
- hibernate.exe
パラメータの詳細についてはこちらを参照
http://msdn.microsoft.com/en-us/library/aa373201(v=vs.85).aspx
Rubyスクリプトを実行するにはあらかじめRubyをインストールしておく必要があります。
http://www.ruby-lang.org/ja/downloads/#label-1
jQuery(function($){ $('.tabset').tabs({}); });
[amazon asin="4822234630" /] [amazon asin="4822234312" /] [amazon asin="4839926689" /]
ピンバック: 2011年08月01日(月)の日常 - okaz::だめにっき
悩みがこのページで解決しました
「スリープ・休止 (お勧めしない方法)」で おっしゃる通り タスクスケジューラからの自動復帰(2003Server)が出来なくて困っていたところでした 「hibernate.exe」を使わせていただいた所 問題なく 自動休止→タスクスケジューラ自動復帰 が出来ました ありがとうございます
ピンバック: Wake On Lan についてのまとめ | TipsZone
Windows8で「suspend.exe」を利用させていただき、大変便利です。 有益な情報・技術を本当にありがとうございました。
ピンバック: スタンバイからのWake On LAN 有効化パッチ thinkpad
私もタスクスケジューラからの自動復帰(WindowsXP)が出来なくて、困ってました。たすかりました、ありがとうございます。
すばらしいです。通常のGUIでのSUSPENDから復帰するのはうまくいくのに、rundll32.exe だと失敗するので困っていました。ありがとうございました。
suspend.exe 発見して試してみました。使わせていただきます。必要なので助かりました。
win7で自宅サーバーを使用する際に、hibernate.exeを使用したいと思います。ご教授願えれば、指定時間に休止から復帰する実行ファイルはないでしょうか?インターネットで探しましたが、復帰した後何かプログラムを実行しなければならず、サーバーなので、ただ単純に復帰だけしたいのですが、いい方法はありませんか? 宜しくお願いします。
以下の記事を参考にしていただくと、休止から復帰できると思います。
Windows PC を目覚まし時計として使う方法
復帰後に何も実行したくないとのことですが、「操作」のところで「プログラムの開始」を選択し、プログラムとして "" (ダブルクォート2個)を指定しておけば良さそうです。
私の PC で確認したところ、何も実行されずスリープから復帰できました。
windows10で機能します。 suspend.exeのショートカットを作り、タスクバーにピン留めしました。 アイコンも変更し、「このファイルを開く前に常に確認する(W)」もオフにしています。
ピンバック: [技術ネタ]タスクスケジューラーでプログラムの実行を自動化(Windows10) | non-classic株式会社(ノンクラシック株式会社)
ピンバック: [技術ネタ]タスクスケジューラでプログラムの実行を自動化(Windows10) | non-classic株式会社(ノンクラシック株式会社)
ありがたく使わせていただきます。
イメージしていた内容と合致したのでとても嬉しいです。suspend.exe 使用させていただきます。