private static void RequestVirtualMachineStateChange(this ManagementObject virtualMachine, VirtualMachineStates newVirtualMachineState) { var inParameters = virtualMachine.GetMethodParameters("RequestStateChange"); inParameters["RequestedState"] = (UInt16)newVirtualMachineState; var outParameters = virtualMachine.InvokeMethod("RequestStateChange", inParameters, null); MethodResult.HandleResult(outParameters); }