Dim wmiPath As New ManagementPath("win32_OperatingSystem")
Dim mc As New ManagementClass(Scope, wmiPath, Nothing)
mc.Get()
Dim wmi_in As ManagementBaseObject
wmi_in = mc.GetMethodParameters("Win32Shutdown")
wmi_in("Flags") = 2
wmi_in("Reserved") = 0
Dim wmi_out As ManagementBaseObject
For Each mo As ManagementObject In mc.GetInstances()
wmi_out = mo.InvokeMethod("Win32Shutdown", wmi_in, Nothing)
Next