共用方式為


如何列出所有程式及其執行時間上限值

在Configuration Manager中,您可以使用 SMS_PackageSMS_Program 類別和類別屬性,列出所有程式及其執行時間上限值。

列出所有程式及其執行時間上限

  1. 設定與 SMS 提供者的連線。

  2. 使用 類別載入可用的 SMS_Package 套件。

  3. 使用 SMS_Program 類別和每個封裝的 屬性, PackageID 列舉每組程式。

  4. 輸出每個程式的封裝名稱、程式名稱和執行時間上限值。

範例

下列範例方法示範如何列出所有程式,以及對應的套件名稱、程式名稱和執行時間上限。

如需呼叫範例程式碼的相關資訊,請參閱呼叫Configuration Manager程式碼片段


Sub ListPackagesProgramsandMaximumRunTimeValue(connection)
    Const wbemFlagReturnImmediately = 16    Const wbemFlagForwardOnly = 32    Dim packageQuery    Dim allPackages    Dim package    Dim packageID    Dim program    Dim programsForPackage
    ' Build query to get all of the packages.
    packageQuery = "SELECT * FROM SMS_Package"

    ' Run query.
    Set allPackages = connection.ExecQuery(packageQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)

    ' The query returns a collection of package objects that needs to be enumerated.
    For Each package In allPackages

        ' Output package name and get the PackageID value to use in program query.
        WScript.Echo ""
        WScript.Echo "Package: "  & package.Name
        packageID = package.PackageID

        ' Build query to get the programs for the package.
        packageQuery = "SELECT * FROM SMS_Program WHERE PackageID='" & packageID & "'"

        ' Run query.
        Set programsForPackage = connection.ExecQuery(packageQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)

        ' The query returns a collection of program objects that needs to be enumerated.
        For Each program In programsForPackage

            ' Output Maximum Runtime Value for each program found.
            WScript.Echo "  Program: "  & program.ProgramName
            WScript.Echo "  Maximum Runtime Value: "  & program.Duration

        Next
    Next

End Sub


public void ListPackagesProgramsandMaximumRunTimeValue(WqlConnectionManager connection)
{
    try
    {
        // Build query to get the packages.
        string packageQuery = "SELECT * FROM SMS_Package";

        // Load the specific program to change (programname is a key value and must be unique).
        IResultObject allPackages = connection.QueryProcessor.ExecuteQuery(packageQuery);

        // The query returns a collection of packages that needs to be enumerated.
        foreach(IResultObject package in allPackages)
        {
            // Output package name and get the PackageID value to use in program query.
            Console.WriteLine();
            Console.WriteLine("Package: "  + package["Name"].StringValue);
            string packageID = package["PackageID"].StringValue;

            // Build query to get the programs for the package.
            string programQuery = "SELECT * FROM SMS_Program WHERE PackageID='" + packageID + "'";

            // Load the all programs belonging to the package.
            IResultObject programsForPackage = connection.QueryProcessor.ExecuteQuery(programQuery);

            // The query returns a collection of programs that needs to be enumerated.
            foreach(IResultObject program in programsForPackage)
            {
                // Output Maximum Runtime Value for each program found.
                Console.WriteLine("   Program: "  + program["ProgramName"].StringValue);
                Console.WriteLine("   Maximum Runtime Value: "  + program["Duration"].IntegerValue);
            }
        }
    }
    catch (SmsException ex)
    {
        Console.WriteLine("Failed to list the packages and programs. Error: " + ex.Message);
        throw;
    }
}

範例方法具有下列參數:

參數 Type 描述
connection -管理: WqlConnectionManager
- VBScript: SWbemServices
SMS 提供者的有效連線。

正在編譯程式碼

C# 範例需要:

命名空間

系統

Microsoft。ConfigurationManagement.ManagementProvider

Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine

組件

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

mscorlib

健全的程式設計

如需錯誤處理的詳細資訊,請參閱關於Configuration Manager錯誤

另請參閱

軟體發佈概觀