Como Listar Todos os Programas e os Respetivos Valores de Tempo Máximo de Execução

No Gestor de Configuração, pode listar todos os programas com os seus valores máximos de tempo de execução utilizando as SMS_Package categorias e SMS_Program as propriedades de classe.

Para listar todos os programas e os seus tempos máximos de execução

  1. Configurar uma ligação com o Fornecedor DE SMS.

  2. Carregue as embalagens disponíveis utilizando a SMS_Package classe.

  3. Enumerar através de cada conjunto de programas usando a SMS_Program classe e a propriedade de cada PackageID pacote.

  4. Desada a denominação do pacote, nome do programa e valor máximo de tempo de execução para cada programa.

Exemplo

O método de exemplo a seguir mostra como listar todos os programas, com o nome do pacote correspondente, nome do programa e tempos máximos de execução.

Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.


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

O método exemplo tem os seguintes parâmetros:

Parâmetro Tipo Description
connection - Gerido: WqlConnectionManager
- VBScript: SWbemServices
Uma ligação válida ao Fornecedor de SMS.

A Compilar o Código

O exemplo C# requer:

Espaços de nomes

Sistema

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assemblagem

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

mscorlib

Programação Robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.

Consulte também

Software distribution overview (Descrição geral da distribuição de software)