SQLの窓 イラストAC フリー素材

2009年04月24日

指定時間経過後強制ログオフ

Windows オリジナルでは、指定時間帯( ログオン時間 )をこえるとログオフさせる事が
できるようですが( Net User で時間設定してローカルセキュリティポリシーで機能を有効にする )、
未検証で、世間的にもあまりやってないようです。

スクリーンセーバーの機能を利用すると、一定時間放置した時にログオフとかするような情報
もありましたが、電源オプションのほうが現実的です。

これは、目的はたまたまログオフですが、
WMI のイベントのサンプルとして他でも使える場合があると思い、作成しました。
dtBase = Now()
dtTarget = dtBase

' 30 秒後に強制ログオフ
dtTarget = DateAdd( "s", 30, dtTarget )
TargetH = Hour( dtTarget )
TargetM = Minute( dtTarget )
TargetS = Second( dtTarget )

Set obj = GetObject("winmgmts:\\.\root\cimv2")
Set objEvents = obj.ExecNotificationQuery( _
	"select * from __InstanceModificationEvent " & _
	"where TargetInstance isa 'Win32_LocalTime' " & _
	"and TargetInstance.Hour = " & TargetH & " " & _
	"and TargetInstance.Minute = " & TargetM & " " & _
	"and TargetInstance.Second = " & TargetS & " " _
)

Set objLatestEvent = objEvents.NextEvent 

Set colOperatingSystems = _
GetObject("winmgmts:{(Shutdown)}").ExecQuery( _
"Select * from Win32_OperatingSystem") 
For Each objOperatingSystem in colOperatingSystems 
	' 0:通常( マニュアル上4は強制とあるが、通常でも強制ログオフ )
	ObjOperatingSystem.Win32Shutdown(0) 
Next 
【VBScriptの最新記事】
posted by at 2009-04-24 23:40 | VBScript | このブログの読者になる | 更新情報をチェックする