• ベストアンサー

WindowsXPのマシンを使用しています。PCを使わないときはいつも

WindowsXPのマシンを使用しています。PCを使わないときはいつも休止状態にしています。 時々復帰に失敗して、復帰続行か、通常起動するかの二択画面になります。 PCの目の前にいるときはいいんですが、出先からWOLで起動してリモートデスクトップをしようと思ってもこの二択画面で止まってると先に進めません。さすがにこの画面を出先から操作できないので。 なので復帰に失敗したときは何秒か経過したら自動で再起動するような仕組みが欲しいんですが、だれかそういうことができるのか知りませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.3

同一フォルダ内に suadd_rbt.cmd sudel_sleep.cmd sudel_sleepのショートカット(名前は「sudel_sleep」とする) wait.vbs psshutdown.exe を同じフォルダに配置します。 それぞれの記述内容は、 (suadd_rbt.cmd) copy sudel_sleep.lnk "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\" shutdown -r -f -t 0 (sudel_sleep.cmd) cscript .\wait.vbs del "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\sudel_sleep.lnk" psshutdown.exe -h (wait.vbs) '3分待ち WScript.Sleep 1000*60*3 (psshutdown.exe) これは記述するのではなくPsToolsをダウンロードし、 その中から取り出します。 以上です。 使う時にはsuadd_rbt.cmdを実行します。 実際には、コードはログに登録したり色々していてもうちょっと複雑なので抜粋しました。 またPsToolsは他の処理で多目的に使うため別の場所に配置されていました。 つまり上記のコードは書き換えています。 だから書き換えた時点で動作実績はなくなっています。まあ参考ということで。

PIX96
質問者

お礼

詳しい回答ありがとうございます。 早速やってみました。 休止にするところはPsToolsの使い方がよくわからなかったので、以下のコマンドを使って休止状態にするようにしました。 %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState 復帰に失敗したときは自動で再起動するくらいの機能はWindowsに持たせて欲しいもんですね。

その他の回答 (2)

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.2

復帰に失敗した状態でリモートから再起動は幾ら何でも無理かと思います。リモートアクセスは正常動作が前提と思います。 問題は休止状態が正常でない事ですので、こちを直すべきではないですか? 私のパソコンでも休止状態が失敗するものがあります。このパソコンはノート型なのですが、バッテリの寿命が尽きているのでそれが原因か、あるいはOSに問題があると考えています。 現状を打開したいなら、購入時の状態へ再セットアップし、動作検証をお勧めします。

  • Donotrely
  • ベストアンサー率41% (537/1280)
回答No.1

そのパソコン自らが再起動というのは難しいでしょうねえ。 できるとすればよほど特殊なBIOSとの組み合わせでしょうけど、そういうのは知りません。 対策としては、 リブート→休止 という一連の処理をさせるという方法が考えられ、 以前私はその様な運用をしていたことがあります。 これだとリブートによりいつもコンピュータは比較的安定しています。 やり方の基本は、 バッチファイルAの内容: (1)スタートアップフォルダにバッチファイルBを起動するショートカットを入れる (予め用意してあったショートカットをコピーする)。 (2)リブート バッチファイルBの内容: (1)スタートアップフォルダからバッチファイルBを起動するショートカットを削除。 (2)コンピュータを休止状態にする。 以上2つのバッチファイルを作ります。 そして休止させたい時にバッチファイルAを実行します。 もちろん実行中のプログラムは強制終了させられますが、 安定性との引き換えでしょう。 リブートははXPのコマンドで shutdown /r /f でいいと思います。 休止状態にするコマンドですが、これはMS半公認のPsToolsの PsShutdown に適当なオプションをつけて実行しました。 他にもレジストリのRunOnceを利用する方法もありますが、 できればレジストリはいじりたくなかったのと、 簡易なコマンドだけでできるのでこちらの方を選択しました。 あと別の方法として考えられるのは、 インテリジェント電源タップを使う方法ですけど高価です。 強制電源断から電源再投入で強制リブートします。 BIOSの電源設定で、以前の状態、が選択できれば利用できます。

PIX96
質問者

お礼

返信ありがとうございます。 なるほど賢い方法ですね。ちょっとすぐにバッチを作れそうではないですけれど。。。

関連するQ&A