codice:
Dim ms As System.Management.ManagementScope = New System.Management.ManagementScope("\\LocalHost\root\cimv2")
Dim mo As System.Management.ManagementObject
ms.Options.EnablePrivileges = True
ms.Options.Password = ""
ms.Options.Username = ""
Dim oq As System.Management.ObjectQuery = New System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem")
Dim query1 As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(ms, oq)
Dim queryCollection1 As System.Management.ManagementObjectCollection = query1.Get()
For Each mo In queryCollection1
Dim ss As String() = {"2", "0"} ' Shutdown
mo.InvokeMethod("Win32Shutdown", ss)
Next
lascio a te provare.