Questão Como faço para extrair arquivos de um pacote MSI?


Temos alguns patches antigos dos quais queremos extrair os arquivos, mas não queremos gastar tempo instalando-os em uma máquina.

Alguém pode aconselhar uma maneira de extrair arquivos de um pacote de instalação do MSI?


172


origem


Você pode fornecer mais informações sobre o pacote de instalação exato do MSI que deseja extrair, os detalhes do sistema operacional, etc. - Firee


Respostas:


Primeiro, acesse um prompt de comando elevado para fazer isso:

  1. Clique no botão Iniciar.

  2. Clique em todos os programas.

  3. Vá em acessórios.

  4. Clique com o botão direito do mouse em Prompt de Comando.

  5. Selecione Executar como administrador.

  6. Quando o prompt do UAC for exibido, clique em Continuar.

Depois de ter seu prompt de comando elevado, insira o seguinte:

msiexec /a drive:\filepath\to\MSI\file /qb TARGETDIR=drive:\filepath\to\target\folder

usando os locais desejados para preencher os caminhos de arquivo mencionados acima. Exemplo:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test

194



outro rápido Google descobriu isso: legroom.net/software/uniextract  Eu preferiria usar built-ins, mas parece um utilitário aceitável.
Tanto quanto eu entendo (de msiexec /?), Este comando irá realmente instalar o programa para esse local; Eu não acho que isso é o que o solicitante original tinha em mente.
@ user6738 Eu testei isso e ele não instala o software. O software não é encontrado no appwiz nem pode ser desinstalado através do msi e relata que não está instalado. Ele realmente extrai os arquivos do meu teste. - Adam Caviness
Eu corri isso em um computador Win8.1 bloqueado (laptop de trabalho) e deve-se notar que Direitos de administrador não são necessários extrair .msi arquivos. - MattDMo
Ótima resposta! Eu coloquei isso em um extractMSI.cmd Arquivo: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pause e adicionei-o às opções "Abrir com ..." do arquivo msi - Tobias Kienzler


Usar 7Zip.
Ele irá descompactar MSI, CAB, alguns EXE e muito mais pacotes para você. Não há necessidade de privilégios de administrador para executar isso também.

-EDITAR-

E seu código aberto, então não há mensagens irritantes implorando para você comprar as coisas


74



e depois de tentar, msiexec faz um trabalho melhor (preservando os diretórios, nomeando arquivos corretamente, etc.) - Michael Schubert
Isso não parece funcionar para mim no win7 x64 com o 7-Zip de 32 bits. Existe uma maneira particular (não drag-drop) você tem que dizer para abrir o arquivo? - ebyrob
Deve haver uma opção de 7zip no menu de contexto quando você clica com o botão direito no arquivo - ele lhe dará a opção de extrair os arquivos - Shekhar
Eu vejo muitas coisas com um sinal de exclamação na frente, em vez de arquivos reais. Eu acho que algo mudou ou eu tenho um arquivo msi estranho. Eu tentei 7-Zip 9,20. - mlt
@MichaelSchubert - isso depende. Se você estiver executando uma máquina não-Windows, o 7Zip é uma boa opção, pois a versão da linha de comando também está disponível para outros sistemas. Depende do caso de uso que eu diria. - Per Lundberg


Há também lessmsi que é completamente livre e de código aberto.

Não há anúncios ou mensagens irritantes, ele irá preservar a estrutura de diretórios e nomes de arquivos corretamente, tem um interface de linha de comando sofisticada, bem como uma interface gráfica do usuário que permite navegar pelos arquivos, bem como visualizar tabelas MSI internas e outros atributos MSI.


41



Obrigado! Este me ajudou a extrair de um MSI que não iria extrair com o comando msiexec dizendo "instalação administrativa não é suportada" para <nome do pacote de instalação> - axk


Há suporte MSI interno para extração de arquivos (instalação administrativa)

MSI ou o Windows Installer tem suporte embutido para este - a extração de arquivos de um arquivo MSI. Isso é chamado de instalação administrativa. É basicamente pretendido como uma maneira de criar um ponto de instalação de rede a partir do qual a instalação pode ser executada em muitos computadores de destino. Isso garante que os arquivos de origem estejam sempre disponíveis para qualquer operação de reparo.

Observe que a execução de uma instalação do administrador versus o uso de uma ferramenta de zip para extrair os arquivos é muito diferente! O último não ajustará o layout da mídia da tabela de mídia para que o pacote seja configurado para usar arquivos de origem externos - o que é o caminho correto. Prefira sempre executar a instalação real do administrador sobre qualquer extração de hacky zip. Quanto à compressão, há realmente três algoritmos de compressão diferentes usado para os arquivos cab dentro do formato de arquivo MSI: MSZip, LZX e armazenamento (descompactado). Todos estes são tratados corretamente, fazendo uma instalação de administrador.


As instalações de administrador têm muitos usos

Recomenda-se ler mais sobre o admin-installs, já que é um conceito útil, e escrevi um post no stackoverflow: Qual é o propósito da instalação administrativa iniciada usando msiexec / a?.

Em essência, a instalação do administrador é importante para:

  • Extraindo e inspecionando os arquivos do instalador
  • Implantação via software de gerenciamento de sistemas, por exemplo SCCM (evita arquivos MSI em cache enormes em C: \ Windows \ Installer, pois os arquivos são extraídos de cabines internas)
  • Reembalagem de aplicativo corporativo
  • Operações de reparo, modificação e auto-reparo
  • Patches e atualizações
  • Anúncio MSI (o "correr da fonte" característica)
  • Um número de outros detalhes menores

Por favor, leia a postagem stackoverflow acima para mais detalhes. É um conceito bastante importante para administradores de sistema, empacotadores de aplicativos, desenvolvedores de configuração, gerentes de lançamentoe até o usuário médio para ver o que eles estão instalando etc ...


Admin-install, prático how-to

Você pode executar uma instalação de administração de algumas maneiras diferentes dependendo de como o instalador é entregue. Essencialmente, é entregue como um Arquivo MSI ou embrulhado em um arquivo setup.exe.

Execute estes comandos de um prompt de comando elevadoe siga as instruções na GUI para as linhas de comando interativas:

  • Arquivos MSI:

    msiexec /a File.msi
    

    isso é para rodar com GUI, você pode fazer isso silenciosamente também:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • arquivos setup.exe:

    setup.exe /a
    

UMA setup.exe arquivo também pode ser um configuração de estilo legado (não-MSI) ou o temido Instituído MSI tipo de arquivo - um tipo de projeto Installshield com bugs bem conhecido com formato MSI híbrido não compatível com os padrões. É essencialmente um MSI com um GUI personalizado e mais avançado, mas também é cheio de erros.

Para arquivos legados setup.exe a /uma não fará nada, mas você pode tentar o / extract_all: switch [path] como explicado em este pdf. É uma boa referência para instalação silenciosa e outras coisas também. Outro recurso é esta lista de parâmetros de linha de comando Installshield setup.exe.

Arquivos de patch MSI (* .MSP) pode ser aplicado a uma imagem administrativa para extrair corretamente seus arquivos. O 7Zip também poderá extrair os arquivos, mas eles não serão formatados corretamente.

Por fim, se não funcionar de outra forma, você pode obter os arquivos de instalação extraídos limpando a pasta temporária em seu sistema, iniciar o setup.exe interativamente e, em seguida, aguardar a exibição da primeira caixa de diálogo. Na maioria dos casos, o instalador terá extraído vários arquivos para uma pasta temporária. Às vezes, os arquivos são simples, outras vezes em formato CAB, mas o Winzip, o 7Zip ou mesmo o Universal Extractor (não testaram este produto) - podem ser capazes de abri-los.


19



Veja também esta resposta: superuser.com/questions/307678/… - Stein Åsmul
A mesma postagem no stackoverflow: stackoverflow.com/a/24987512/129130 (Eu deveria deletar um, mas ambos estão com upvoted e eles foram fundidos recentemente). - Stein Åsmul


eu recomendaria UniExtract para tornar a solução do neoice ainda mais fácil. Ele faz a mesma coisa, apenas é mais automatizado e permite vários métodos para extrair arquivos MSI, não apenas uma instalação administrativa (como sua solução está usando).

O UniExtract também pode manipular exe's empacotados com o WISE ou o InstallShield, bem como uma variedade de outros formatos compactados. Ah, e é grátis.

Universal Extractor é um programa que faz   exatamente o que diz: extrair arquivos   de qualquer tipo de arquivo, seja   um arquivo zip simples, uma instalação   programa, ou até mesmo um Windows Installer   (.msi) pacote.


8





Se você instalar Comando total, existe um plugin para abrir e extrair arquivos MSI.


3



Certo. Mas infelizmente apenas para TC de 32 bits - Timores


você pode usar Orca este aplicativo faz parte do Platform SDK, mas você também pode baixá-lo aqui http://desbner.sts.winisp.net/Tools/Orca.zip


1



O Orca é melhor para extrair metadados como tabelas de arquivos, pastas e registros. Geralmente não é muito útil para extrair os arquivos reais (completamente inúteis se os arquivos não estiverem armazenados na tabela binária). - Synetech


Adicionar PeaZip à lista. Trabalhou como um campeão


1



Por favor leia Como eu recomendo software para algumas dicas sobre como você deve recomendar o software. No mínimo, você deve fornecer mais do que apenas um link, por exemplo, algumas informações adicionais sobre o software em si, por exemplo, como ele pode ser usado para resolver o problema na pergunta. - DavidPostill♦