Como extraio arquivos de um pacote MSI?


192

Temos alguns patches antigos dos quais queremos obter 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 MSI?


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

Respostas:


212

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

  1. Clique no botão Iniciar.

  2. Clique em todos os programas.

  3. Vá para 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 aparecer, 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

5
outro rápido Google descobriu isso: legroom.net/software/uniextract Eu preferiria usar built-ins, mas parece um utilitário aceitável.

5
Tanto quanto eu entendo (do msiexec /?), Este comando realmente instalará o programa nesse local; Eu não acho que isso é o que o solicitante original tinha em mente.

8
@ user6738 Testei isso e ele não instala o software. O software não é encontrado no appwiz nem pode ser desinstalado pelo msi e informa que ele não está instalado. Ele realmente extrai os arquivos do meu teste.
Adam Caviness

17
Eu executei isso em um computador Win8.1 bloqueado (laptop de trabalho) e observe que NÃO são necessários direitos de administrador para extrair .msiarquivos.
precisa saber é o seguinte

5
Ótima resposta! Eu coloquei isso em um extractMSI.cmdarquivo: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pausee acrescentou que a "Abrir com ..." opções da-arquivo MSI
Tobias KIENZLER

75

Use 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, portanto, nenhuma mensagem incômoda implorando para você comprar as coisas


13
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 específica (não arrastar e soltar) que você precisa dizer para abrir o arquivo?
ebyrob

Deve haver uma opção de 7zip no menu de contexto quando você clique direito no arquivo - ele vai te dar a opção para extrair os arquivos
Shekhar

7
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 o 7-Zip 9.20.
Mlt 1/13

@MichaelSchubert - depende. Se você estiver executando uma máquina que não seja 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

46

Há também lessmsi, que é totalmente gratuito e de código aberto.

Não há anúncios ou mensagens irritantes, ele preservará a estrutura do diretório e os nomes dos arquivos corretamente, possui uma sofisticada interface de linha de comando e uma interface gráfica do usuário que permite navegar pelos arquivos, além de exibir tabelas MSI internas e outros atributos MSI.


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

1
este ajudou .. msiexec não extraiu por algum motivo ..
Abdul Hameed 13/09

23

Existe suporte MSI integrado para extração de arquivos (instalação do administrador)

O MSI ou o Windows Installer tem suporte interno para isso - a extração de arquivos de um arquivo MSI. Isso é chamado de instalação administrativa . Pretende-se basicamente como uma maneira de criar um ponto de instalação em 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 executar uma instalação administrativa versus usar uma ferramenta zip para extrair os arquivos é muito diferente! O último não ajustará o layout de mídia da tabela de mídia para que o pacote seja configurado para usar arquivos de origem externos - que é a maneira correta. Sempre prefira executar a instalação real do administrador em vez de qualquer extração de hackers. Quanto à compactação, na verdade existem três algoritmos de compactação diferentes usados ​​para os arquivos cab dentro do formato de arquivo MSI: MSZip, LZX e Storing (descompactado). Tudo isso é tratado corretamente, fazendo uma instalação de administrador.


As instalações administrativas têm muitos usos

Recomenda-se ler mais sobre as instalações administrativas, pois é um conceito útil e escrevi uma postagem no stackoverflow: Qual é o objetivo da instalação administrativa iniciada usando o 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 enormes arquivos MSI em cache em C: \ Windows \ Installer, pois os arquivos são extraídos de cabines internas)
  • Reempacotamento de aplicativos corporativos
  • Operações de reparo, modificação e auto-reparo
  • Patches e atualizações
  • Anúncio MSI (o recurso " executar a partir da fonte ")
  • Vários outros detalhes menores

Leia a postagem do stackoverflow vinculada acima para obter mais detalhes. É um conceito bastante importante para administradores de sistema , empacotadores de aplicativos , desenvolvedores de instalação , gerenciadores de versão e até mesmo o usuário médio para ver o que estão instalando, etc.


Instalação de administrador, instruções práticas

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

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

  • Arquivos MSI :

    msiexec /a File.msi
    

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

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

    setup.exe /a
    

Um arquivo setup.exe também pode ser uma configuração de estilo herdado (não MSI) ou o temido tipo de arquivo InstallScript MSI - um tipo de projeto Installshield de buggy bem conhecido com formato híbrido de MSI não compatível com os padrões. É essencialmente um MSI com uma GUI personalizada e mais avançada, mas também está cheia de bugs.

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

Os arquivos de patch MSI (* .MSP) podem ser aplicados a uma imagem de administrador para extrair adequadamente seus arquivos. O 7Zip também poderá extrair os arquivos, mas eles não serão formatados corretamente.

Por fim, se nenhuma outra maneira funcionar, você pode se apossar dos arquivos de instalação extraídos limpando a pasta temporária do sistema, iniciando o setup.exe interativamente e aguardando o primeiro diálogo aparecer. Na maioria dos casos, o instalador extraiu vários arquivos para uma pasta temporária. Às vezes, os arquivos são simples, outras vezes no formato CAB, mas o Winzip, 7Zip ou até o Universal Extractor (não testaram este produto) - podem abri-los.


Consulte também esta resposta: superuser.com/questions/307678/…
Stein Åsmul 10/10

A mesma postagem no stackoverflow: stackoverflow.com/a/24987512/129130 (devo excluir um, mas ambos foram votados e foram mesclados recentemente).
Stein Åsmul 10/10

8

Eu recomendaria o UniExtract para tornar a solução da neoice ainda mais fácil. Ele faz o mesmo, 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 lidar com o exe empacotado com o WISE ou InstallShield, além de vários outros formatos compactados. Ah, e é grátis.

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



1

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


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

1

lessmsié realmente a melhor escolha aqui, pois oferece a você escolher exatamente quais arquivos extrair e para onde devem ir. Além disso, ele pode ser facilmente instalado usando a apt-getestrutura do Windows, chamada Choclatey. O lessmsisite acima foi movido e também pode ser encontrado / baixado no GitHub . Além disso, você pode encontrar muitas outras ferramentas e informações relacionadas ao MSI AQUI. : (Desculpe, não posso postar mais de 2 links!)


1

Adicione o PeaZip à lista. Trabalhou como um campeão


Leia Como recomendo o software para obter 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 próprio software, por exemplo, como ele pode ser usado para resolver o problema na pergunta.
DavidPostill




0

As configurações do Installshield .exe (como você as chama) são de vários tipos, e geralmente é possível extrair arquivos delas.

Um installshield setup.exe pode conter instaladores antigos não-msi antigos ou novos instaladores do msi.

Se o setup.exe estiver agrupando uma instalação MSI, você poderá especificar setup.exe / ae a instalação administrativa do MSI será executada, permitindo especificar e local de saída para os arquivos.

Se o setup.exe for uma instalação herdada do Installshield, ele pode ou não oferecer suporte à extração de arquivos por meio da opção / extract_all: [path] . Por favor, veja aqui (atualizado em julho de 2011, o link Acresso não era mais válido, atualizado novamente em fevereiro de 2014 - apontando para o itninja agora).

Observe também que outra maneira de se apossar desses arquivos é limpar a pasta temporária do sistema, iniciar o setup.exe interativamente e aguardar o primeiro diálogo aparecer. Na maioria dos casos, o instalador extraiu vários arquivos para uma pasta temporária. Às vezes, os arquivos são simples, outras vezes no formato CAB, mas o Winzip, 7Zip ou até o Universal Extractor (não testaram este produto) - podem abri-los.


Meus requisitos para isso já passaram - mas tentarei o que você sugere em algum momento para ver se teria funcionado. Obrigado por responder.
Martin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.