Condividi tramite


Come elencare tutti i programmi e il relativo valore di runtime massimo

In Configuration Manager è possibile elencare tutti i programmi con i relativi valori di runtime massimi usando le classi e SMS_Program e le proprietà della SMS_Package classe .

Per elencare tutti i programmi e i relativi tempi di esecuzione massimi

  1. Configurare una connessione al provider SMS.

  2. Caricare i pacchetti disponibili usando la SMS_Package classe .

  3. Enumerare ogni set di programmi usando la SMS_Program classe e la PackageID proprietà di ogni pacchetto.

  4. Restituisce il nome del pacchetto, il nome del programma e il valore massimo del tempo di esecuzione per ogni programma.

Esempio

Il metodo di esempio seguente illustra come elencare tutti i programmi, con il nome del pacchetto, il nome del programma e i tempi di esecuzione massimi corrispondenti.

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice 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;  
    }  
}  

Il metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
connection -Gestito: WqlConnectionManager
- VBScript: SWbemServices
Connessione valida al provider SMS.

Compilazione del codice

L'esempio C# richiede:

Namespaces

Sistema

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Mscorlib

Programmazione efficiente

Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.

Vedere anche

Panoramica sulla distribuzione dei software