Freigeben über


Auflisten aller Programme und ihres maximalen Laufzeitwerts

In Configuration Manager können Sie alle Programme mit ihren maximalen Laufzeitwerten auflisten, indem Sie die SMS_Package Klassen- und Klasseneigenschaften und SMS_Program verwenden.

So listen Sie alle Programme und ihre maximalen Laufzeiten auf

  1. Richten Sie eine Verbindung mit dem SMS-Anbieter ein.

  2. Laden Sie die verfügbaren Pakete mithilfe der SMS_Package -Klasse.

  3. Führen Sie die einzelnen Programme mithilfe der SMS_Program -Klasse und der PackageID -Eigenschaft aus den einzelnen Paketen auf.

  4. Geben Sie den Paketnamen, den Programmnamen und den maximalen Laufzeitwert für jedes Programm aus.

Beispiel

Die folgende Beispielmethode zeigt, wie alle Programme mit dem entsprechenden Paketnamen, dem Programmnamen und der maximalen Laufzeit aufgelistet werden.

Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.


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;  
    }  
}  

Die Beispielmethode verfügt über die folgenden Parameter:

Parameter Typ Beschreibung
connection -Verwalteten: WqlConnectionManager
– VBScript: SWbemServices
Eine gültige Verbindung mit dem SMS-Anbieter.

Kompilieren des Codes

Für das C#-Beispiel ist Folgendes erforderlich:

Namespaces

System

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Mscorlib

Robuste Programmierung

Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.

Siehe auch

Übersicht über die Softwareverteilung