Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar

Implantando aplicativos com base em versões anteriores de aplicativos

Implantando aplicativos com base em versões anteriores de aplicativos

Publicado em: 30 de novembro de 2006

Muitas vezes, ao instalar um sistema operacional em um computador existente, convém instalar os mesmos aplicativos que estavam nesse computador. Para fazer isso, use os scripts do BDD 2007 (especificamente o ZTIGather.wsf) para consultar duas fontes separadas de informações:

  • O banco de dados de inventário de hardware do SMS 2003. Contém um registro de cada pacote de aplicativos, nesse caso informações de Adicionar ou Remover Programas, instalado a partir da última vez em que o SMS 2003 fez um inventário do computador.

  • Uma tabela de mapeamentos. Descreve qual pacote e programa do SMS 2003 deve ser instalado para cada registro (porque os registros de Adicionar ou Remover Programas não especificam exatamente qual pacote instalou o aplicativo, tornando impossível selecionar o pacote automaticamente com base exclusivamente no inventário).

Para realizar uma instalação de aplicativo dinâmica específica de computador:

  1. Use a tabela no banco de dados do Deployment Workbench para relacionar pacotes específicos aos aplicativos listados em Adicionar ou Remover Programas.

  2. Preencha a tabela com dados que associam o pacote apropriado ao aplicativo listado em Adicionar ou Remover Programas (conforme ilustrado na Listagem 14).

    Listagem 14. Consulta SQL para preencher a tabela

    Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

    use [DWDB]
    go
    INSERT INTO [PackageMapping] (ARPName, Packages) VALUES('Office8.0',
    'XXX0000F-Install Office 2003 Professional')
    go

    Na Listagem 14, a linha inserida relaciona qualquer computador que tenha a entrada “Office8.0” em Adicionar ou Remover Programas ao pacote SMS Microsoft Office 2003 Professional. Isso significa que o Microsoft Office 2003 será instalado em qualquer computador que atualmente execute o Microsoft Office 97 (Office 8.0). Entradas semelhantes podem ser adicionadas para qualquer outro pacote. Qualquer outra instância de Adicionar ou Remover Programas para a qual não haja entrada será ignorada. (Nenhum pacote será instalado.)

  3. Crie um procedimento armazenado para simplificar a junção das informações na nova tabela com os dados de inventário do SMS (conforme ilustrado na Listagem 15).

    Listagem 15. Consulta SQL para criar um procedimento armazenado de forma a simplificar a junção das informações com dados de inventário do SMS

    Observação Algumas partes do trecho de código a seguir foram exibidas em várias linhas para ficarem mais legíveis. Elas devem ser inseridas em uma única linha.

    use [DWDB]
    go
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].
    [RetrievePackages]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[RetrievePackages]
    go
    CREATE  PROCEDURE [dbo].[RetrievePackages]
    @MacAddress CHAR(17)
    AS
    SET NOCOUNT ON
    /* Select and return all the appropriate records 
    based on current inventory */
    SELECT * FROM PackageMapping
    WHERE ARPName IN
    (
      SELECT ProdID0 FROM SMS_SMS.dbo.v_GS_ADD_REMOVE_PROGRAMS a, 
      SMS_SMS.dbo.v_GS_NETWORK_ADAPTER n
      WHERE a.ResourceID = n.ResourceID AND
      MACAddress0 = @MacAddress
    )
    go

    O procedimento armazenado na Listagem 15 assume que o banco de dados do local principal central do SMS reside no mesmo computador que executa o SQL Server em comparação ao DWDB (banco de dados do Deployment Workbench). Se o banco de dados do site primário central do SMS residir em um computador diferente, as modificações apropriadas precisarão ser feitas no procedimento armazenado. Além disso, o nome do banco de dados do SMS (SMS_SMS na Listagem 15) deve ser atualizado. Além disso, talvez seja necessário conceder às contas adicionais acesso de leitura à visualização v_GS_ADD_REMOVE_PROGRAMS no banco de dados do SMS.

  4. Configure o arquivo CustomSettings.ini de forma a consultar a tabela do banco de dados, especificando o nome de uma seção ([DynamicPackages] na lista Priority) que aponte para as informações do banco de dados (conforme ilustrado na Listagem 16).

    Listagem 16. Fragmento de Customsettings.ini que ilustra a seção DynamicPackages na lista Priority

    [Settings]
    ...
    Priority=MacAddress, DefaultGateway, DynamicPackages, Default
    ...
  5. Crie uma seção [DynamicPackages] para especificar o nome de uma seção de banco de dados (conforme ilustrado na Listagem 17).

    Listagem 17. Fragmento de Customsettings.ini que ilustra a seção DynamicPackages com o nome de uma seção de banco de dados

    [DynamicPackages]
    SQLDefault= DB_DynamicPackages
  6. Crie uma seção de banco de dados para especificar as informações de banco de dados e os detalhes de consultas (conforme ilustrado na Listagem 18).

    Listagem 18. Fragmento de CustomSettings.ini que ilustra a seção do banco de dados

     [DB_DynamicPackages]
    SQLServer=SERVER1
    Database=DWDB
    StoredProcedure=RetrievePackages
    Parameters=MacAddress
    SQLShare=Logs

    No exemplo da Listagem 18, o DWDB no computador que executa o SQL Server denominado SERVER1 será consultado. O banco de dados contém um procedimento armazenado denominado RetrievePackages (criado na etapa 3).

Quando ZTIGather.wsf for executado, uma instrução SQL SELECT será automaticamente gerada e o valor da chave personalizada MakeModelQuery será transmitido como parâmetro para a consulta (como mostra a Listagem 19).

Listagem 19. Exemplo de consulta SQL criada automaticamente com base na seção de banco de dados

EXECUTE RetrievePackages ?

O valor real da chave personalizada MacAddress será substituído pelo “?” correspondente na Listagem 19. Essa consulta retorna um conjunto de registros com as linhas inseridas na etapa 2.

Não é possível transmitir um número variável de argumentos a um procedimento armazenado. Como resultado, quando um computador tem mais de um endereço MAC, não é possível transmitir todos os endereços MAC ao procedimento armazenado. Como alternativa, é possível substituir o procedimento armazenado por uma visualização que permitiria a consulta da visualização com uma instrução SELECT junto com uma cláusula IN para transmitir todos os valores de endereços MAC.

Com base no cenário apresentado aqui, se o computador atual tiver o valor Office8.0 inserido na tabela (etapa 2), a linha será retornada (“XXX0000F-Install Office 2003 Profession”). Isso indica que o pacote “XXX0000F-Install Office 2003 Profession” será instalado pelo processo ZTI durante a fase de restauração de estado.

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft