人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows2000/XPで22時の時点でユーザーがログインしていなければ自動的にシャットダウンしたいです。

タスクにshutdown.exeコマンドを設定したところ、ログインの有無にかかわらず落ちてしまうので、アウトです。

*無償の範囲であれば手段(スクリプト(VBS,bat,etc)、フリーソフト等)は問いません。

●質問者: kaasuke
●カテゴリ:コンピュータ
✍キーワード:ETC exe VBS Windows2000 XP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●200ポイント ベストアンサー

シャットダウンの動作検証はしていませんが、ログオンかどうかの判定は下記のようでできました。

(ログオン中はexplorer.exe が起動していることを判断材料にしています。)

If processCheck("explorer.exe") = True Then
WScript.Echo "只今ログオン中なので、シャットダウンを実行しません。"
Else
 ' CreateObject("WScript.Shell").Run "shutdown.exe -s", 0, True
End If

'//------------------------------------------------
' プロセスが動いているかチェックする関数
'//------------------------------------------------
Function processCheck( pName )
'//------------------------------------------------
processCheck = False

 Dim objPWMI
 On Error Resume Next
 Set objPWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\localhost\root\cimv2")
 Err.Clear
 On Error GoTo 0
 If Err.Number <> 0 Then Exit Function '接続できなかったら、終了

 Dim colProc
 Set colProc = objPWMI.ExecQuery("Select * from Win32_Process WHERE Name='" & pName & "'")
If colProc.Count > 0 Then processCheck = True
End Function

シャットダウン部分はコメントアウトしていますので、適宜変更ください。

◎質問者からの返答

ありがとうございます。

本日試してみてうまくいきました!

win2Kの場合shutdown.exe(system32に無い)でちょっとはまりましたが、なんとかなりそうです。

ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ