ControlMetrics(
            string managedElementPath,
            string metricDefinitionPath,
            MetricOperation operation,
            ManagementScope scope)
        {
            using (ManagementObject metricService = MetricUtilities.GetMetricService(scope))
            {
                using (ManagementBaseObject inParams =
                           metricService.GetMethodParameters("ControlMetrics"))
                {
                    inParams["Subject"]    = managedElementPath;
                    inParams["Definition"] = metricDefinitionPath;
                    inParams["MetricCollectionEnabled"] = (uint)operation;

                    using (ManagementBaseObject outParams =
                               metricService.InvokeMethod("ControlMetrics", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);
                    }
                }
            }
        }
        ControlMetrics(
            string managedElementPath,
            string metricDefinitionPath,
            MetricOperation operation,
            ManagementScope scope)
        {
            using (ManagementObject metricService = MetricUtilities.GetMetricService(scope))
            {
                using (ManagementBaseObject inParams = 
                    metricService.GetMethodParameters("ControlMetrics"))
                {
                    inParams["Subject"] = managedElementPath;
                    inParams["Definition"] = metricDefinitionPath;
                    inParams["MetricCollectionEnabled"] = (uint)operation;

                    using (ManagementBaseObject outParams = 
                        metricService.InvokeMethod("ControlMetrics", inParams, null))
                    {
                        WmiUtilities.ValidateOutput(outParams, scope);
                    }
                }
            }
        }