Windows Management Instrumentation or WMI holds many surprises and features but when my colleagues machine rebooted even I was surprised. Using WMI allows you to create management type applications and of course being able to reboot a remote computer is a necessary feature. Of course it requires you have an admin logon account to the machine.In this code written with Beta 2 you will need to change the username, password and ip address to access your own machines.While WMI is a great feature it may be exposed as a security risk. If you have no intention of using its features on your network you may want to disable it.Enjoy//WMI3//Demonstrates how to remotely reboot a computer on the network//Written 02/01/02 By John O'Donnell - csharpconsulting@hotmail.com using System;using System.Management; namespace WMI3{/// <summary>/// Summary description for Class1./// </summary> class Class1{static void Main(string[] args){Console.WriteLine("Computer details retrieved using Windows Management Instrumentation (WMI)");Console.WriteLine("Written 02/01/02 By John O'Donnell - csharpconsulting@hotmail.com");Console.WriteLine("========================================================================="); //Connect to the remote computerConnectionOptions co = new ConnectionOptions();co.Username = "john";co.Password = "john";System.Management.ManagementScope ms = new System.Management.ManagementScope("\\\\192.168.1.2\\root\\cimv2", co); //Query remote computer across the connectionSystem.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_OperatingSystem");ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);ManagementObjectCollection queryCollection1 = query1.Get(); foreach( ManagementObject mo in queryCollection1 ) {string[] ss={""};mo.InvokeMethod("Reboot",ss);Console.WriteLine(mo.ToString());}}}}
Rebooting a Remote Server using WMI
Interrogating System with WMI - Part 2