如何启用或禁用软件计数规则

在 Configuration Manager,可以通过加载由软件计数规则 ID 标识的软件计数规则实例,然后设置 Enabled 值来启用或禁用软件计数规则。

启用或禁用软件计数规则

  1. 设置与 SMS 提供程序的连接。

  2. 使用 SMS_MeteredProductRule 类和已知的软件计数规则 ID 加载软件计数规则对象。

  3. Enabled 属性设置为 truefalse

示例

以下示例方法演示如何通过加载由软件计数规则 ID 标识的软件计数规则实例并设置 Enabled 属性来启用或禁用软件计数规则。

重要

规则 ID 对应于存储在属性 RuleID 中的值。 Configuration Manager控制台显示规则 ID 列,该列实际上对应于存储在属性 SecurityID 中的值。

有关调用示例代码的信息,请参阅调用Configuration Manager代码片段


' Enable or disable a software metering rule.  
 Sub EnableDisableSoftwareMeteringRule(connection,          _  
                                      existingSWMRuleID,    _  
                                      enableDisableSWMRule)                           

    ' Get an existing software metering rule to enable or disable.   
    Set existingSWMRule = connection.Get("SMS_MeteredProductRule.RuleID='" & existingSWMRuleID & "'")    

    ' Get file name for output.  
    fileName = existingSWMRule.FileName  

    ' Enable or disable the rule.  
    existingSWMRule.Enabled = enableDisableSWMRule  

    ' Save the new rule and properties.  
    existingSWMRule.Put_   

    ' Output a success message.  
    Wscript.Echo "SWM rule ID:    " & existingSWMRuleID  
    Wscript.Echo "Rule name:      " & fileName  
    Wscript.Echo "Set enabled to: " & enableDisableSWMRule  

 End Sub  

public void EnableDisableSoftwareMeteringRule(WqlConnectionManager connection,  
                                              string existingSWMRuleID,  
                                              bool enableDisableSWMRule)  
{  
    try  
    {  
        // Get the specific software metering rule to enable or disable.  
        IResultObject existingSWMRule = connection.GetInstance(@"SMS_MeteredProductRule.RuleID='" + existingSWMRuleID + "'");  

        // Get rule name for output message.  
        string productName = existingSWMRule["ProductName"].StringValue;  

        // Set the software metering rule.  
        existingSWMRule["Enabled"].BooleanValue = enableDisableSWMRule;  

        // Save changes.  
        existingSWMRule.Put();  

        // Output a success message.  
        Console.WriteLine("SWM rule ID: " + existingSWMRuleID);  
        Console.WriteLine("Rule name: " + productName);  
        Console.WriteLine("Set enabled to: " + enableDisableSWMRule);  
    }  

    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed to modify software metering rule. Error: " + ex.Message);  
        throw;  
    }  
}  

示例方法具有以下参数:

参数 类型 说明
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
与 SMS 提供程序的有效连接。
existingSWMRuleID -管理: String
- VBScript: String
标识特定的软件计数规则。 在这种情况下,标识将启用或禁用的特定软件计数规则。
enableDisableSWMRule -管理: Boolean
- VBScript: Boolean
启用或禁用软件计数规则。

true -启用

false -禁用

编译代码

此 C# 示例需要:

命名空间

System

System.Collections.Generic

System.Text

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

可靠编程

有关错误处理的详细信息,请参阅关于Configuration Manager错误

.NET Framework 安全性

有关保护Configuration Manager应用程序的详细信息,请参阅Configuration Manager基于角色的管理

另请参阅

Configuration Manager软件开发工具包
SMS_MeteredProductRule服务器 WMI 类