Pridajte príkaz Extrahovať kontextové menu do súborov MSI
Keď máte balík MSI, možno vás bude zaujímať extrahovanie jeho obsahu bez inštalácie aplikácie. Dá sa to rýchlo urobiť bez použitia nástrojov tretích strán. Windows už obsahuje všetko potrebné na prevádzku. V tomto článku uvidíme, ako pridať užitočný príkaz "Extrahovať" do kontextového menu súboru MSI.
Systém Windows spracováva balíky MSI prostredníctvom aplikácie msiexec, ktorá je súčasťou Inštalátora systému Windows. Je to vstavaný nástroj, ktorý podporuje množstvo prepínačov príkazového riadku. Môžete sa o nich dozvedieť spustením nasledujúceho príkazu.
- Stlačte tlačidlo Vyhrať + R pomocou klávesových skratiek na klávesnici otvorte dialógové okno Spustiť.
- Do poľa Spustiť zadajte nasledujúce:
msiexec /?
- Inštalátor systému Windows zobrazí obsah pomocníka v okne:
Podporuje nasledujúce prepínače:
Inštalovať možnosti
Inštaluje alebo konfiguruje produkt
/a Administratívna inštalácia – nainštaluje produkt do siete
/j [/t] [/g]
Inzeruje produkt - m všetkým používateľom, u aktuálnemu používateľovi
Odinštaluje produkt
Možnosti zobrazenia
/quiet
Tichý režim, žiadna interakcia používateľa
/passive
Bezobslužný režim – iba indikátor priebehu
/q[n|b|r|f]
Nastavuje úroveň používateľského rozhrania
n - Žiadne používateľské rozhranie
b - Základné používateľské rozhranie
r - Znížené používateľské rozhranie
f - Úplné používateľské rozhranie (predvolené)
/help
Pomocné informácie
Možnosti reštartu
/norestart
Po dokončení inštalácie nereštartujte
/promptrestart
V prípade potreby vyzve používateľa na reštart
/forcerestart
Po inštalácii vždy reštartujte počítač
Možnosti protokolovania
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i - Stavové správy
w - Nefatálne varovania
e - Všetky chybové hlásenia
a - Spustenie akcií
r - Záznamy špecifické pre akciu
u - Žiadosti používateľov
c - Počiatočné parametre používateľského rozhrania
m - Nedostatok pamäte alebo fatálne informácie o ukončení
o - Správy o nedostatku miesta na disku
p - Vlastnosti terminálu
v - Podrobný výstup
x - Ďalšie informácie o ladení
+ - Pripojiť k existujúcemu súboru denníka
! - Prepláchnite každý riadok do denníka
* - Zaznamenajte všetky informácie okrem možností v a x
/log
Ekvivalent /l*
Možnosti aktualizácie
/update [;Update2.msp]
Použije sa aktualizácia (aktualizácie)
/uninstall [;Update2.msp] /package Odstrániť aktualizácie pre produkt
Možnosti opravy
/f[p|e|c|m|s|o|d|a|u|v] Opraví produkt
p - iba ak chýba súbor
o - ak súbor chýba alebo je nainštalovaná staršia verzia (predvolené)
e - ak súbor chýba alebo je nainštalovaná rovnaká alebo staršia verzia
d - ak súbor chýba alebo je nainštalovaná iná verzia
c - ak súbor chýba alebo kontrolný súčet nezodpovedá vypočítanej hodnote
a - vynúti preinštalovanie všetkých súborov
u - všetky požadované položky registra špecifické pre používateľa (predvolené)
m - všetky požadované položky databázy Registry špecifické pre počítač (predvolené)
s - všetky existujúce skratky (predvolené)
v - beží zo zdroja a znovu ukladá lokálny balík
Nastavenie verejných vlastností
[PROPERTY=PropertyValue]
Možnosť, ktorá sa týka tejto situácie, je /a. Hoci je to opísané ako „Administratívna inštalácia – Inštaluje produkt na sieť“, dá sa použiť extrahovať obsah jedného balíka MSI do menších samostatných súborov, ktoré môžu obsluhovať a náplasť. Je možné použiť nasledujúci príkaz:
msiexec /a "cesta\k\balíku.msi" /qb TARGETDIR="cesta\k\cieľu\priečinku"
TARGETDIR je vlastnosť spoločná pre každý balík, ktorá určuje cieľový priečinok pre obsah balíka MSI.
Prepínač "/ qb" informuje Inštalátor systému Windows, aby počas procesu zobrazil základné rozhranie. Zobrazí sa dialógové okno s tlačidlom Zrušiť a indikátorom priebehu.
Napríklad na rozbalenie inštalačného programu MSI správcu FAR môžem použiť nasledujúci príkaz:
msiexec /a "C:\Users\winaero\Downloads\Far30b4774.x64.20160902.msi" /qb TARGETDIR="C:\Users\winaero\Downloads\Far"
Ak cieľový priečinok neexistuje, vytvorí sa automaticky. V mojom prípade sa vytvorí podpriečinok Ďaleko v priečinku Download.
Vyššie uvedený príkaz je možné zadať priamo v dialógovom okne Spustiť.
Pridajte príkaz Extrahovať kontextové menu do súborov MSI
- Otvorené Editor databázy Registry.
- Prejdite na nasledujúci kľúč databázy Registry:
HKEY_CLASSES_ROOT\Msi. Balíček\shell
Tip: Ako prejsť na požadovaný kľúč databázy Registry jedným kliknutím.
- Tu vytvorte nový podkľúč a pomenujte ho Výťažok.
- Pod kľúčom Extrahovať vytvorte nový podkľúč a pomenujte ho Príkaz:
- Nastavte predvolenú hodnotu Príkaz podkľúč na nasledujúci reťazec:
msiexec.exe /a "%1" /qb TARGETDIR="%1 obsah"
Pozrite si nasledujúcu snímku obrazovky:
Po kliknutí pravým tlačidlom myši na balík MSI v Prieskumníkovi súborov nájdete novú položku kontextového menu „Extrahovať“. Ak ho spustíte, vytvorí sa nový adresár „názov_balíka.msi Contents“ v aktuálnom priečinku a rozbalí sa tam obsah balíka. Pozrite si nasledujúcu snímku obrazovky:
Aby som vám ušetril čas, vytvoril som súbory databázy Registry pripravené na použitie. Môžete si ich stiahnuť pomocou odkazu nižšie.
Stiahnite si súbory databázy Registry
Súčasťou je aj súbor na vrátenie.
Tento trik funguje v systémoch Windows 10, Windows 8 a Windows 7.
Všimnite si, že niektoré balíky nepodporujú administratívnu inštaláciu. Pomocou tejto metódy ich nemožno extrahovať. Keď týmto spôsobom rozbalíte balík MSI, jeho administratívny inštalačný bod (priečinok, v ktorom je extrahovaný) sa stane použiteľným. Na jeho aktualizáciu je možné použiť opravu Inštalátora systému Windows (MSP), takže keď je balík nainštalovaný, použije sa aj oprava.