如何创建软件计数规则

可以通过创建 类的SMS_MeteredProductRule实例并填充属性,在 Configuration Manager 中创建软件计数规则。

创建软件计数规则

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

  2. 使用 SMS_MeteredProductRule 类创建新的软件计数规则对象。

  3. 填充新的软件计数规则属性。

  4. 保存新的软件计数规则和属性。

示例

以下示例方法演示如何通过创建 类的 SMS_MeteredProductRule 实例并填充属性来创建软件计数规则。

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


Sub CreateSWMRule(connection,              _
                  newProductName,          _
                  newFileName,             _
                  newOriginalFileName,     _
                  newFileVersion,          _
                  newLanguageID,           _
                  newSiteCode,             _
                  newApplyToChildSites)

    ' Create the new MeteredProductRule object.
    Set newSWMRule = connection.Get("SMS_MeteredProductRule").SpawnInstance_

    ' Populate the SMS_MeteredProductRule properties.
    newSWMRule.ProductName= newProductName
    newSWMRule.FileName = newFileName
    newSWMRule.OriginalFileName =  newOriginalFileName
    newSWMRule.FileVersion = newFileVersion
    newSWMRule.LanguageID = newLanguageID
    newSWMRule.SiteCode = newSiteCode
    newSWMRule.ApplyToChildSites = newApplyToChildSites

    ' Save the new rule and properties.
    newSWMRule.Put_

    ' Output new rule name.
    Wscript.Echo "Created new SWM Rule: " & newProductName

End Sub

public void CreateSWMRule(WqlConnectionManager connection,
                          string newProductName,
                          string newFileName,
                          string newOriginalFileName,
                          string newFileVersion,
                          int newLanguageID,
                          string newSiteCode,
                          bool newApplyToChildSites)
{
    try
    {
        // Create the new SMS_AuthorizationList object.
        IResultObject newSWMRule = connection.CreateInstance("SMS_MeteredProductRule");

        // Populate the new SMS_MeteredProductRule object properties.
        newSWMRule["ProductName"].StringValue = newProductName;
        newSWMRule["FileName"].StringValue = newFileName;
        newSWMRule["OriginalFileName"].StringValue = newOriginalFileName;
        newSWMRule["FileVersion"].StringValue = newFileVersion;
        newSWMRule["LanguageID"].IntegerValue = newLanguageID;
        newSWMRule["SiteCode"].StringValue = newSiteCode;
        newSWMRule["ApplyToChildSites"].BooleanValue = newApplyToChildSites;

        // Save changes.
        newSWMRule.Put();

        Console.WriteLine();
        Console.WriteLine("Created new SWM Rule: " + newProductName);
    }

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

示例方法具有以下参数:

参数 类型 说明
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
与 SMS 提供程序的有效连接。
newProductName -管理: String
- VBScript: String
新产品名称。
newFileName -管理: String
- VBScript: String
新文件名。
newOriginalFileName -管理: String
- VBScript: String
新的原始文件名。
newFileVersion -管理: String
- VBScript: String
新的文件版本。
newLanguageID -管理: Integer
- VBScript: Integer
新语言 ID。
newSiteCode -管理: String
- VBScript: String
新站点代码。
newApplyToChildSites -管理: Boolean
- VBScript: Boolean
确定规则是否将应用于子网站。

编译代码

此 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 类