This code is an example of how to shut down a remote computer in C#.net
using System.Management;
public class Win32OperatingSystem
{
public static void Shutdown(string machineName, string username, string password)
{
ManagementScope Scope = null;
ConnectionOptions ConnOptions = null;
ObjectQuery ObjQuery = null;
ManagementObjectSearcher ObjSearcher = null;
try
{
ConnOptions = new ConnectionOptions();
ConnOptions.Impersonation = ImpersonationLevel.Impersonate;
ConnOptions.EnablePrivileges = true;
//local machine
if (machineName.ToUpper() == Environment.MachineName.ToUpper() )
Scope = new ManagementScope(@”\ROOT\CIMV2″, ConnOptions);
else
{
//remote machine
ConnOptions.Username = username;
ConnOptions.Password = password;
Scope = new ManagementScope(@”\\” + machineName + @”\ROOT\CIMV2″, ConnOptions);
}
Scope.Connect();
ObjQuery = new ObjectQuery(”SELECT * FROM Win32_OperatingSystem”);
ObjSearcher = new ManagementObjectSearcher(Scope, ObjQuery );
foreach( ManagementObject operatingSystem in ObjSearcher.Get())
{
MessageBox.Show(”Caption = ” + operatingSystem.GetPropertyValue(”Caption”));
MessageBox.Show(”Version = ” + operatingSystem.GetPropertyValue(”Version”));
ManagementBaseObject outParams = operatingSystem.InvokeMethod (”Shutdown”,null,null);
}
}
catch (Exception ex)
{
throw ex;
}
}
}
//Note:
Call the function like:
static void Main(string[] args)
{
Win32OperatingSystem.Shutdown(@”Machinename”, @”UserName”, @”Pwd”);
}