如何创建程序

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

重要

当客户端计算机上定义的维护时段设置为小于该程序的 “允许的最大运行时间”设置的时间段时,任何播发的程序都将无法运行。 有关详细信息,请参阅 Configuration Manager 文档中的使用维护时段的程序运行方案。

创建计划

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

  2. 使用 SMS_Program 类创建新的程序对象。

  3. 填充新的程序属性。

    提示

    为任务序列或虚拟应用程序包创建程序时,必须将SMS_Program属性设置为特定值。 下表概述了这些设置应配置为什么。

    任务序列

    属性名 属性值
    ProgramName *

    虚拟应用程序包

    属性名 属性值
    CommandLine PkgGUID={E742FFD6-D539-42CC-9827-73535FC81E06}:VersionGUID={19366289-8C55-44E2-A5EC-7B385EFB4C30}

    注意: GUID 值取自虚拟应用程序的 XML 清单文件。
    ProgramName [虚拟应用程序]
  4. 保存新程序和属性。

示例

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

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


Sub CreateProgram(connection, existingPackageID, newProgramName, newProgramComment, newProgramCommandLine, newMaxRunTime)  

    ' Create the new program object.    Dim newProgram  
    Set newProgram = connection.Get("SMS_Program").SpawnInstance_  

    ' Populate the program properties.  
    newProgram.PackageID = existingPackageID  
    newProgram.ProgramName = newProgramName  
    newProgram.Comment = newProgramComment  
    newProgram.CommandLine = newProgramCommandLine  
    newProgram.Duration = newMaxRunTime  

    ' Save the new program and properties.  
    newProgram.Put_  

    ' Output new program name.  
    wscript.echo "Created program: " & newProgramName  

End Sub  
public void CreateProgram(WqlConnectionManager connection,   
                          string existingPackageID,   
                          string newProgramName,   
                          string newProgramComment,   
                          string newProgramCommandLine,  
                          int newMaxRunTime)  
{  
    try  
    {  
        // Create an instance of SMS_Program.  
        IResultObject newProgram = connection.CreateInstance("SMS_Program");  

        // Populate basic program values.  
        newProgram["PackageID"].StringValue = existingPackageID;  
        newProgram["ProgramName"].StringValue = newProgramName;  
        newProgram["Comment"].StringValue = newProgramComment;  
        newProgram["CommandLine"].StringValue = newProgramCommandLine;  
        newProgram["Duration"].IntegerValue = newMaxRunTime;  

        // Save the new program instance and values.  
        newProgram.Put();  

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

示例方法具有以下参数:

参数 类型 说明
connection

swebemServices
-管理: WqlConnectionManager
- VBScript: SWbemServices
与 SMS 提供程序的有效连接。
existingPackageID -管理: String
- VBScript: String
与程序关联的包的名称。
newProgramName -管理: String
- VBScript: String
新程序的名称。
newProgramComment -管理: String
- VBScript: String
描述Configuration Manager控制台中的程序的注释。
newProgramCommandLine -管理: String
- VBScript: String
启动程序时运行的命令行。
newMaxRunTime -管理: Integer
- VBScript: Integer
客户端计算机上程序执行的大致持续时间(以分钟为单位)。 此参数的最大值可以为 720 分钟或 12 小时。

编译代码

C# 示例需要:

命名空间

系统警报

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

mscorlib

可靠编程

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

另请参阅

软件分发概述