- WMI Fun !! -|WMI StepWMI SampleSearchWMI Fun !! GroupsAbout WMI Fun !!
Top Page >> WMI Step >> PCをシャットダウン
PCをシャットダウン
Topics

WMIでPCをシャットダウンするサンプルです。Win32_OperatingSystemクラスのShutdownメソッドを使用します。


Sample Code

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

Comment

実行するとPCをシャットダウンしてしまいます。
今回重要な点は「Security.Privileges.Add wbemPrivilegeShutdown」の部分です。ここでローカルシャットダウンの特権を与えています。実際試してみるとわかるのですがこの部分を消して実行するとシャットダウンは出来ません。
ちなみに今回のシャットダウンは完全にマシンが落ちません。 ACPI等に対応していて電源断までサポートしているのであれば、Win32Shutdownメソッドを実行してみてください。
例としては、「Os.Win32Shutdown x」という形で実行します。ちなみにxの部分が引数になっており、

0:ログオフ 1:シャットダウン 2:再起動 8:電源断

というような仕様になっているようです。


WMI を本で勉強したい方へ。 Windows PowerShellインアクション を読んでみては?
なかなか WMI のことが乗っている書籍は少ないですが…管理系業務に係る方には楽しめるかも?
パソコンで目が疲れたら、ブルーベリーアイ
『ブルーベリーアイ』1粒中ビルベリーエキス160mg【楽天シニア市場】
 ^ Copyright(C) 1997-2008 とお All rights reserved. <<