如何创建包

以下示例演示如何使用 SMS_Package 类和类属性在 Configuration Manager 中创建包。

创建包

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

  2. 使用 SMS_Package 类创建新的包对象。

  3. 填充新的包属性。

    提示

    创建虚拟应用程序包时,必须将属性设置为 SMS_Package 特定值。 类的 SMS_VirtualApp 实例必须引用类的实例, SMS_Package 这些实例使用下表中所述的属性。

    虚拟应用程序包

    属性名 属性值
    PackageType 7
    PkgSourceFlag 2
    PkgSourcePath \\someserver\somesharepath
  4. 保存包。

示例

以下示例方法创建一个新包并填充其属性,以便在软件分发中使用。

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


Sub CreatePackage(connection, newPackageName, newPackageDescription, newPackageSourceFlag, newPackageSourcePath)  

    ' Create the new package object.     Dim newPackage  
    Set newPackage = connection.Get("SMS_Package").SpawnInstance_  

    ' Populate the new package properties.  
    newPackage.Name = newPackageName  
    newPackage.Description = newPackageDescription  
    newPackage.PkgSourceFlag = newPackageSourceFlag  
    newPackage.PkgSourcePath = newPackageSourcePath  

    ' Save the package.  
    newPackage.Put_  

    ' Output the new package name.  
    wscript.echo "Created package: "  & newPackageDescription  

End Sub  
public void CreatePackage(WqlConnectionManager connection, string newPackageName, string newPackageDescription, int newPackageSourceFlag, string newPackageSourcePath)  
{  
    try  
    {  
        // Create new package object.  
        IResultObject newPackage = connection.CreateInstance("SMS_Package");  

        // Populate new package properties.  
        newPackage["Name"].StringValue = newPackageName;  
        newPackage["Description"].StringValue = newPackageDescription;  
        newPackage["PkgSourceFlag"].IntegerValue = newPackageSourceFlag;  
        newPackage["PkgSourcePath"].StringValue = newPackageSourcePath;  

        // Save new package and new package properties.  
        newPackage.Put();  

        // Output new package name.  
        Console.WriteLine("Created package: " + newPackageName);  
    }  

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

示例方法具有以下参数:

参数 类型 说明
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
与 SMS 提供程序的有效连接。
newPackageName -管理: String
- VBScript: String
新包的名称。
newPackageDescription -管理: String
- VBScript: String
新包的说明。
newPackageSourceFlag -管理: Integer
- VBScript: Integer
包源。
newPackageSourcePath -管理: String
- VBScript: String
包源的路径。

编译代码

C# 示例需要:

命名空间

系统警报

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

mscorlib

可靠编程

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

另请参阅

SMS_Package服务器 WMI 类的软件分发概述
PowerShell Cmdlet:New-CMPackage