Adicionar comando de menu de contexto de extração a arquivos MSI
Quando você tem um pacote MSI, pode estar interessado em extrair seu conteúdo sem instalar o aplicativo. Isso pode ser feito rapidamente sem o uso de ferramentas de terceiros. O Windows já vem com tudo o que é necessário para o funcionamento. Neste artigo, veremos como adicionar um comando útil "Extrair" ao menu de contexto do arquivo MSI.
Propaganda
O Windows lida com pacotes MSI por meio do aplicativo msiexec, que faz parte do Windows Installer. É uma ferramenta integrada que oferece suporte a várias opções de linha de comando. Você pode aprender sobre eles executando o seguinte comando.
- pressione Vencer + R teclas de atalho no teclado para abrir a caixa de diálogo Executar.
- Digite o seguinte na caixa Executar:
msiexec /?
- O Windows Installer exibirá o conteúdo da ajuda em uma janela:
Suporta as seguintes opções:
Opções de instalação
Instala ou configura um produto
/ a Instalação administrativa - instala um produto na rede
/ j [/ t] [/ g]
Anuncia um produto - m para todos os usuários, u para o usuário atual
Desinstala o produto
Opções de exibição
/quiet
Modo silencioso, sem interação do usuário
/passive
Modo autônomo - barra de progresso apenas
/q[n|b|r|f]
Define o nível da interface do usuário
n - Sem IU
b - UI básica
r - UI reduzida
f - UI completa (padrão)
/help
Informações de ajuda
Opções de reinicialização
/norestart
Não reinicie após a conclusão da instalação
/promptrestart
Solicita ao usuário reiniciar, se necessário
/forcerestart
Sempre reinicie o computador após a instalação
Opções de registro
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i - Mensagens de status
w - Avisos não fatais
e - Todas as mensagens de erro
a - Início das ações
r - Registros específicos de ação
u - solicitações do usuário
c - Parâmetros de IU iniciais
m - Sem memória ou informações de saída fatal
o - Mensagens de falta de espaço em disco
p - Propriedades do terminal
v - Saída detalhada
x - Informações extras de depuração
+ - Anexar ao arquivo de log existente
! - Libere cada linha para o registro
* - Registrar todas as informações, exceto as opções v e x
/log
Equivalente a / l *
Opções de atualização
/ update [; Update2.msp]
Aplica atualização (ões)
/ uninstall [; Update2.msp] / package Remove atualização (ões) para um produto
Opções de Reparo
/ f [p | e | c | m | s | o | d | a | u | v] Repara um produto
p - apenas se o arquivo estiver faltando
o - se o arquivo estiver faltando ou uma versão mais antiga estiver instalada (padrão)
e - se o arquivo estiver faltando ou uma versão igual ou anterior estiver instalada
d - se o arquivo estiver faltando ou uma versão diferente estiver instalada
c - se o arquivo estiver faltando ou a soma de verificação não corresponder ao valor calculado
a - força a reinstalação de todos os arquivos
u - todas as entradas de registro específicas do usuário necessárias (padrão)
m - todas as entradas de registro específicas do computador necessárias (padrão)
s - todos os atalhos existentes (padrão)
v - é executado a partir da fonte e recaches o pacote local
Configurando Propriedades Públicas
[PROPERTY = PropertyValue]
A opção que diz respeito a esta situação é / a. Embora seja descrito como "Instalação administrativa - Instala um produto na rede", ele pode ser usado para extrair o conteúdo de um único pacote MSI para arquivos individuais menores que podem ser atendidos por um correção. O seguinte comando pode ser usado:
msiexec / a "caminho \ para \ pacote.msi" / qb TARGETDIR = "caminho \ para \ a \ pasta de destino"
TARGETDIR é uma propriedade comum para cada pacote que especifica a pasta de destino para o conteúdo do pacote MSI.
A opção "/ qb" informa ao Windows Installer para mostrar a interface básica durante o processo. Ele mostrará uma caixa de diálogo com o botão Cancelar e a barra de progresso.
Por exemplo, posso usar o seguinte comando para descompactar o instalador MSI do FAR Manager:
msiexec / a "C: \ Users \ winaero \ Downloads \ Far30b4774.x64.20160902.msi" / qb TARGETDIR = "C: \ Users \ winaero \ Downloads \ Far"
Se a pasta de destino não existir, ela será criada automaticamente. No meu caso, a subpasta Far na pasta Download será criada.
O comando acima pode ser inserido diretamente na caixa de diálogo Executar.
Você pode usar as informações acima para adicionar um comando de menu de contexto para extrair o conteúdo do arquivo MSI com um clique. Veja como isso pode ser feito.
Adicionar comando de menu de contexto de extração a arquivos MSI
- Abrir Editor de registro.
- Vá para a seguinte chave do Registro:
HKEY_CLASSES_ROOT \ Msi. Package \ shell
Gorjeta: Como pular para a chave de registro desejada com um clique.
- Crie uma nova subchave aqui e nomeie-a Extrair.
- Na chave Extrair, crie uma nova subchave e nomeie-a Comando:
- Defina o valor padrão do Comando subchave para a seguinte string:
msiexec.exe / a "% 1" / qb TARGETDIR = "% 1 Conteúdo"
Veja a seguinte captura de tela:
Depois de clicar com o botão direito em um pacote MSI no File Explorer, você encontrará um novo item de menu de contexto "Extrair". Se você executá-lo, ele criará um novo diretório "nome_do_pacote.msi Conteúdo" na pasta atual e extrairá o conteúdo do pacote lá. Veja a seguinte captura de tela:
Para economizar seu tempo, criei arquivos do Registro prontos para usar. Você pode baixá-los usando o link abaixo.
Baixar arquivos de registro
O arquivo de desfazer está incluído.
Este truque funciona no Windows 10, Windows 8 e Windows 7.
Observe que alguns pacotes não suportam instalação administrativa. Eles não podem ser extraídos usando este método. Além disso, quando você extrai um pacote MSI dessa maneira, seu ponto de instalação administrativa (a pasta onde ele é extraído) torna-se útil. Um patch do Windows Installer (MSP) pode ser usado para atualizá-lo de forma que, quando o pacote for instalado, o patch também seja aplicado.