マシンをシャットダウンする時、ローカルコンピュータポリシーに設定された
シャットダウンスクリプトを実行するかどうか選択する仕組みを作ることはできないでしょうか?
やりたいことは以下です。
・毎日PCの電源を切るときにスクリプトを実行したい
・それは、ログオフしてシャットダウンする前(シャットダウンスクリプトのタイミング)で実行したい
・ただしそのスクリプトは時間がかかる
・業務中にシャットダウン(or再起動)した時には、スクリプトを実行したくない
・1日の終わりにシャットダウンしたときだけスクリプトを実行したい
方向性としては2つあると思っております。
【方向性1】
業務中のシャットダウン(or再起動)は、スタート→シャットダウンで実行する。
帰宅前のシャットダウンでは、用意してあるスクリプトを実行してシャットダウンする。
そのスクリプトでは、シャットダウンスクリプトを設定してからシャットダウンする(shutdown.exe)
スタートアップスクリプトでは、シャットダウンスクリプトが設定されていれば、その設定を解除するようにしておく。
→ <質問1>スクリプトでシャットダウンスクリプトを設定/解除する方法が分かりません。
【方向性2】
<質問2>シャットダウンスクリプトを実行するかどうか選択してシャットダウンする方法が存在する?
環境 : Windows XP Pro XP3
<質問1><質問2>をご存知の方、ご教授お願いします。
また、上記以外の方向性で実装できる手段がありましたら、同じくご教授お願い致します。
No.2
- 回答日時:
>帰宅前のシャットダウンでは、用意してあるスクリプトを実行してシャットダウンする。
私は「帰宅前このアイコンで電源を落としてください」という「操作指導」で終わらせました。
そのアイコンにはバックアップ用のプログラムを入れてます。このプログラムの最後でShutdown.exeを実行しています。(当然バックアップのみの選択もできます)
私もシャットダウンスクリプトは検討したのですが面倒なので「操作指導」で終わらせました。
運用でカバーできるならあまり複雑にしないほうがいいと思います。
回答ありがとうございます。
そもそもシャットダウンスクリプトである必要があるのかは確かに別途検討が必要かと思います。
その検討はしますが、ここではあくまで「シャットダウンスクリプトを選択的に実行する方法・仕組み」を質問させて頂きます。
No.3ベストアンサー
- 回答日時:
スクリプトを修正してよいのであれば、たとえば、VBScript の場合は MsgBox で問い合わせできますよ。
シャットダウン スクリプトでも動作します。
参考URL:http://www.upken.jp/wiki/vbs_msgbox_sample.html
回答ありがとうございます。
この方法は良いかもしれません。
数分間ユーザの入力を待ち、
入力があった → スクリプトを実行しない
入力がなに → スクリプトを実行する
というケースで分ければ、要件を満たすかもしれません。
業務中必要なシャットダウンであれば、ユーザはマシンの前にいるはずですから。
検討してみます。ありがとうございました。
No.4
- 回答日時:
他の方が回答されていますが、vbsのmsgboxの返り値を変数に入れれば、ユーザの応答を得ることが出来ます。
「本日の業務を終了しますか?(Y/N)」みたいなものです。
Yにしたばあいは特定の処理に移り、Nの場合は処理せずにシャットダウンまたは再起動になるようにします。
ローカルポリシーにスクリプトを設置する場合ですが、対象の作業をさせるスクリプトを直接登録しても、処理が終わる前にシャットダウンしてしまうことがあります。その場合はいくつか方法がありますが、「対象の作業」が何らかのアプリケーションを起動する場合、WMIのプロセス監視機能を同VBSに仕込んで、目的のプロセスが動いている間はスクリプトが終了しないようにループ文を作ることで対応できます。
私はこの方法で、WEBアプリを使い「帰宅時間管理」を運用をしていました。(WMIでIEを監視)
何かのご参考になればと思います。
回答ありがとうございます。
> ローカルポリシーにスクリプトを設置する場合ですが、対象の作業をさせるスクリプトを直接登録しても、処理が終わる前にシャットダウンしてしまうことがあります。
この点は、ShellオブジェクトのRunメソッドを使い外部プログラムの終了まで待機させることで、シャットダウンスクリプトにおいても確実にスクリプト全体を実行させることができることを確認済みでした。
Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.Run(EXE_PATH, 1, True)
No.5
- 回答日時:
> 数分間ユーザの入力を待ち、
> 入力があった → スクリプトを実行しない
> 入力がなに → スクリプトを実行する
> というケースで分ければ、要件を満たすかもしれません。
この要件であれば、MsgBox ではなく、Popup の出番ですね。
参考URL:http://www.upken.jp/wiki/wsh_popup_sample.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 ウィンドウズ11でスリープの設定は? 1 2022/05/26 02:41
- デスクトップパソコン パソコンについて質問です。 指定時間に使ってなかったら シャットダウンするように設定したいのですが 1 2023/05/30 13:48
- デスクトップパソコン タスク、プログラム実行後に自動シャットダウンしたい 3 2023/08/25 18:01
- ノートパソコン surface pro8シャットダウンせず発熱する 1 2022/08/20 02:55
- Windows 10 更新プログラムの適用を止めたい 4 2022/11/04 01:25
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- Windows 10 Win10の起動が遅い(OSは最新)ハードを交換しても解決しない 5 2023/03/25 01:04
- ノートパソコン スリープ状態の PC をスリープ解除せずそのままシャットダウンする方法はないでしょうか? 電源ボタン 6 2022/10/11 21:01
- Windows 10 前回の質問の続きです。 あの後、システムのエラーが疑われたのでインターネットで調べて、ドライブのチェ 1 2023/05/21 23:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
emacsでCtrl+zを押してサスペン...
-
python IDLEで訂正、削除のやり...
-
「一定の時間間隔で5秒毎にMacr...
-
taskkill をバッチ処理できない。
-
Openイベントを開始させないで...
-
CRONを隔週の日曜日に実行させたい
-
ROBOCOPY cmdで正常に処理され...
-
Linux のシェルスクリプトの強...
-
SONYの音楽ソフト「x-アプリ」...
-
ACCESSレポートをPDFに出力したい
-
複数のバッチを同時並行で起動...
-
コマンドプロンプト Windows
-
LD_LIBRARY_PATHって?
-
Mac de プログラム
-
信頼済みサイト登録をbatファイ...
-
初回ログイン時のみ実行
-
gnome-terminalの使い方教えて...
-
常に全画面表示するには・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
LD_LIBRARY_PATHって?
-
windows10のごみ箱をrd /s /q C...
-
python IDLEで訂正、削除のやり...
-
バッチファイル内の各コマンド...
-
shutdownコマンド実行の残り時...
-
taskkill をバッチ処理できない。
-
Openイベントを開始させないで...
-
Check Diskは定期的に実行した...
-
ROBOCOPY cmdで正常に処理され...
-
Linux のシェルスクリプトの強...
-
最初の一度しか実行されないロ...
-
エクセルからアクセスのプロシ...
-
linuxサーバーのキャッシュをク...
-
SPI非言語の問題 解説お願いします
-
Macでlsした際の、ファイル名の...
-
windowsからtelnetでログインし...
-
CRONを隔週の日曜日に実行させたい
おすすめ情報