I can also get the uninstaller to run arbitrary scripts, as long as the entire script fits in the Uninstall program: field on the Programs tab of the SCCM deployment type for that application. I just have to enclose the command with something like cmd /d /c"command goes here".
Padronizei arquivos em lote para hospedar os comandos para executar (des) instalação. Portanto, o campo "Instalar programa" lê Install-Application.bat
. Isso me permite testar o processo de (des) instalação totalmente separado do SCCM, simplesmente executando o arquivo de lote. Então, quando isso estiver funcionando, posso usar o SCCM para executar esse arquivo em lote com a confiança de que ele será executado da mesma maneira que eu já testei (supondo que você testou no mesmo contexto que o SCCM usa). Os arquivos em lote são distribuídos junto com os outros arquivos que compõem o conteúdo desse aplicativo.
now I need to know how to push the answer file out to individual systems. From what I've seen, I can't use a network share for this, because the uninstaller will run as local system account that won't have permissions for any network resources. If I could just push random files to computers, I could also push a more complicated uninstall script... but that would also leave artifacts that I still need a way to remove.
O SCCM cuida da distribuição de conteúdo (incluindo cache e limpeza) para você. Faz um bom trabalho disso. Eu acho que você pode estar perdendo o conceito de conteúdo e distribuição para aplicativos SCCM. O SCCM administrará a distribuição do conteúdo de qualquer pasta UNC que você colocar no campo "Local de Conteúdo" para todos os clientes que precisarem. Eu encontrei isso para trabalhar de forma confiável e automagicamente. Minhas pastas de conteúdo geralmente incluem arquivos em lote, instaladores, scripts powershell, arquivos XML, arquivos .msp e quaisquer outras armadilhas de um processo de instalação autônoma.
Surely it's not this hard? What am I missing?
É tão difícil. Ou pelo menos muitas vezes é. Pode valer a pena afirmar que o SCCM não ajuda na instalação e desinstalação do software. O SCCM realmente lida apenas com distribuição de software (e faz um bom trabalho com isso). O SCCM depende inteiramente de instaladores e desinstaladores pré-construídos para executar essas tarefas. O SCCM não pode ajudá-lo se você ainda não tiver um (des) instalador que funcione do jeito que você deseja. Geralmente, a dor resulta (para cerca de 60% dos instaladores que vejo) de alguma combinação dos seguintes:
- (des) instaladores que exigem interação do usuário quando você realmente quer que eles sejam executados de forma autônoma (que não é uma maneira fácil de superar para aplicativos nativos)
- (des) instaladores que são instalados para um único usuário, mas precisam de privilégios elevados (que não é uma maneira prática de automatizar)
- (des) instaladores que pretendem instalar para um único usuário, mas na verdade são instalados para o sistema ou vice-versa
Alguns desses problemas podem ser superados pelo App-V (mas isso não ajudará a desinstalar o aplicativo nativo existente). Por melhor que eu saiba, no entanto, existem alguns aplicativos cuja instalação e desinstalação simplesmente não podem ser confiavelmente automatizadas.