O que, exatamente, o cliente SCCM está fazendo quando instala um .msi para um sistema?

7

Eu tenho trabalhado com um .msi específico ( AppleApplicationSupport.msi ). Eu instalei-o de duas maneiras diferentes, que achei que seriam equivalentes. No entanto, os resultados diferem da seguinte forma.

PSEXEC -i -s cmd

A instalação usando o prompt de comando psexec -i -s cmd e a execução de msiexec /i AppleApplicationSupport.msi resulta no resultado desejado:

  • "Suporte de aplicativos da Apple (32 bits)" é exibido em "Adicionar ou remover programas"
  • "Apple Application Support (32 bits)" pode ser desinstalado

Tipo de Implantação MSI Instalado pelo Cliente SCCM

Criar um tipo de implantação do MSI e instalá-lo usando o cliente SCCM produz os seguintes resultados:

  • nada aparece em "Adicionar ou remover programas"
  • O SCCM não detecta que instalou
  • O aplicativo "Apple Application Support (32-bit)" pode ser encontrado usando gwmi -Class Win32_Product , no entanto, a execução de $app.Uninstall() não o desinstala.

Qual é a diferença?

Eu pensei que um Tipo de Implantação MSI instalado para um sistema era equivalente a executar msiexec de uma linha de comando psexec -i -s cmd . Evidentemente, eles não são os mesmos.

  1. Qual é exatamente o cliente SCCM fazendo quando instala um tipo de implantação da Tecnologia MSI para um sistema? Posso replicar essa operação sem o envolvimento do SCCM?

  2. A execução do cliente SCCM de um instalador do tipo de implantação do Instalador de Script é realmente equivalente a uma chamada para msiexec de psexec -i -s cmd ? Em outras palavras, para os tipos de implantação do instalador de scripts, devo esperar a paridade entre msiexec executada pelo cliente SCCM e msiexec executada em psexec -i -s cmd ?

Adicionado após a resposta do kce:

  1. Como o SCCM consegue instalar o .msi sem que ele apareça em "Adicionar ou Remover Programas"?
por alx9r 27.07.2015 / 22:57

2 respostas

4

  1. What, exactly, is the SCCM client doing when it installs an MSI Technology deployment type for a system? Can I replicate that operation without SCCM involvement?

Até onde sei, o cliente SCCM está executando qualquer cadeia de instalação especificada no Tipo de Implementação, mas ele está sendo executado sob o contexto de NT AUTHORITY \ SYSTEM. Você pode aproximar, mas não duplicar a instalação, executando a mesma seqüência de instalação de uma conta que seja membro de BUILTIN \ Administrators. MSIEXEC pode ser executado como um processo de 32 bits ou 64 bits, dependendo de você verificar ou não a caixa que diz "Executar o programa de instalação e desinstalação como processo de 32 bits em clientes de 64 bits".


  1. Is the SCCM client's execution of a Script Installer deployment type's installer really equivalent to a call to msiexec from psexec -i -s cmd? In other words, for script installer deployment types should I expect parity between msiexec run by the SCCM client and msiexec run from psexec -i -s cmd?

Hmmm. Boa pergunta. O cliente deve apenas executar a string de instalação, mas não seria muito surpreendente para mim se fizesse alguma magia mais profunda e sombria. A única coisa em que posso pensar em sua situação que possa estar causando a diferença é o bit-ness do processo no qual você está executando o instalador. Eu acho que o cliente SCCM quase sempre usa 64 bits, mas cmd.exe é de 32 bits, certo?

Dê uma olhada na minha resposta aqui para outras orientações gerais sobre como lidar com problemas de instalação de software.

Melhor da sorte.

    
por 27.07.2015 / 23:50
2

Além desta resposta de trabalho de arte do @kce, as únicas coisas escassas e simplistas que tenho que adicionar são

  • eu trato todos os pacotes igualmente

Em geral, evito "Aplicativos", a menos que seja forçado a lidar com eles, o que geralmente ocorre quando estou criando uma implantação do App-V. Caso contrário, eu mantenho os pacotes, eles são menos dor de cabeça como você viu ou vai ver.

No SCCM, criei um pacote para meus arquivos .msi da mesma forma que faria para qualquer outro instalador. Como o kce disse que está sendo instalado na conta do sistema, no entanto, quando eu crio um pacote versus o manipulador msi padrão, tenho um controle mais preciso sobre a sequência de instalação, por exemplo, msiexec /i "my.msi" /qb /v vs. qualquer que seja o padrão. Minhas aplicações essencialmente sempre apareciam em Adicionar / Remover onde teriam aparecido se eu tivesse instalado manualmente. Em teoria, sim, o tipo de implantação do Aplicativo SCCM para .msi deve funcionar de forma fantasiosa, mas, na prática, o uso de algo diferente pode dar a você melhores resultados. Como os aplicativos são novos para esta versão do SCCM, é provável que existam alguns problemas.

Bônus

Se você realmente quiser descobrir se isso está relacionado à conta de instalação, use a opção psexec para executar o comando na conta do sistema.

    
por 28.07.2015 / 08:10