| - WMI Fun !! -|WMI Step|WMI Sample|Search|WMI Fun !! Groups|About WMI Fun !! | ||||||
| Top Page >> WMI Step >> PCをシャットダウン | ||||||
|
PCをシャットダウン
■TopicsWMIでPCをシャットダウンするサンプルです。Win32_OperatingSystemクラスのShutdownメソッドを使用します。 Private Sub Command1_Click()
Dim OsSet As SWbemObjectSet
Dim Os As SWbemObject
Dim Locator As SWbemLocator
Dim Security As SWbemSecurity
Dim Service As Object
Dim MesStr As String
Const wbemPrivilegeShutdown = 18
Set Locator = New WbemScripting.SWbemLocator
Set Security = Locator.Security_
Security.Privileges.Add wbemPrivilegeShutdown
Set Service = Locator.ConnectServer
Set OsSet = Service.ExecQuery _
("Select * From Win32_OperatingSystem")
For Each Os In OsSet
Os.Shutdown
Next
Set OsSet = Nothing
Set Os = Nothing
Set Service = Nothing
Set Locator = Nothing
End Sub
実行するとPCをシャットダウンしてしまいます。 今回重要な点は「Security.Privileges.Add wbemPrivilegeShutdown」の部分です。ここでローカルシャットダウンの特権を与えています。実際試してみるとわかるのですがこの部分を消して実行するとシャットダウンは出来ません。 ちなみに今回のシャットダウンは完全にマシンが落ちません。 ACPI等に対応していて電源断までサポートしているのであれば、Win32Shutdownメソッドを実行してみてください。 例としては、「Os.Win32Shutdown x」という形で実行します。ちなみにxの部分が引数になっており、 0:ログオフ 1:シャットダウン 2:再起動 8:電源断 というような仕様になっているようです。
WMI を本で勉強したい方へ。
なかなか WMI のことが乗っている書籍は少ないですが…管理系業務に係る方には楽しめるかも? |
|
| ^ | Copyright(C) 1997-2008 とお All rights reserved. | << |