G
Guest
I am trying to use WMI to reboot my system. I have admin privileges. I've
tried two different solutions but both fail for separate reasons.
private void button1_Click(object sender, System.EventArgs e)
{
ManagementBaseObject outParams = null;
ManagementClass os = new ManagementClass("Win32_OperatingSystem");
os.Scope.Options.EnablePrivileges = true; // enables required security
privilege.
os.Get();
ManagementBaseObject inParams = os.GetMethodParameters("Win32Shutdown");
inParams["Flags"] = "2"; // System forced reboot
inParams["Reserved"] = "0";
foreach (ManagementObject mo in os.GetInstances())
outParams = mo.InvokeMethod("Win32Shutdown", inParams, null);
}
This method gives me a run-time errors with System.Management telling me
"Privilege not held."
This next attempt, called from the click method, fails with a run-time error
saying "Invalid Method Parameter(s)".
ManagementClass os = new ManagementClass("Win32_OperatingSystem");
os.Scope.Options.EnablePrivileges = true; // enables required security
privilege.
os.Get();
ManagementBaseObject inParams = os.GetMethodParameters("Reboot");
ManagementBaseObject outParams = os.InvokeMethod("Reboot", inParams, null);
What am I doing wrong? I have .NET 1.1 on my system.
tried two different solutions but both fail for separate reasons.
private void button1_Click(object sender, System.EventArgs e)
{
ManagementBaseObject outParams = null;
ManagementClass os = new ManagementClass("Win32_OperatingSystem");
os.Scope.Options.EnablePrivileges = true; // enables required security
privilege.
os.Get();
ManagementBaseObject inParams = os.GetMethodParameters("Win32Shutdown");
inParams["Flags"] = "2"; // System forced reboot
inParams["Reserved"] = "0";
foreach (ManagementObject mo in os.GetInstances())
outParams = mo.InvokeMethod("Win32Shutdown", inParams, null);
}
This method gives me a run-time errors with System.Management telling me
"Privilege not held."
This next attempt, called from the click method, fails with a run-time error
saying "Invalid Method Parameter(s)".
ManagementClass os = new ManagementClass("Win32_OperatingSystem");
os.Scope.Options.EnablePrivileges = true; // enables required security
privilege.
os.Get();
ManagementBaseObject inParams = os.GetMethodParameters("Reboot");
ManagementBaseObject outParams = os.InvokeMethod("Reboot", inParams, null);
What am I doing wrong? I have .NET 1.1 on my system.