Voeg de opdracht Contextmenu uitpakken toe aan MSI-bestanden
Als je een MSI-pakket hebt, ben je misschien geïnteresseerd in het extraheren van de inhoud ervan zonder de app te installeren. Dit kan snel worden gedaan zonder tools van derden te gebruiken. Windows wordt al geleverd met alles wat nodig is voor de operatie. In dit artikel zullen we zien hoe u een handig commando "Extract" kunt toevoegen aan het contextmenu van het MSI-bestand.
Advertentie
Windows verwerkt MSI-pakketten via de msiexec-app, die deel uitmaakt van Windows Installer. Het is een ingebouwde tool die een aantal commandoregel-switches ondersteunt. U kunt er meer over leren door de volgende opdracht uit te voeren.
- druk op Winnen + R sneltoetsen op het toetsenbord om het dialoogvenster Uitvoeren te openen.
- Typ het volgende in het vak Uitvoeren:
msiexec /?
- Windows Installer geeft de inhoud van de Help weer in een venster:
Het ondersteunt de volgende schakelaars:
Installatieopties
Installeert of configureert een product
/a Administratieve installatie - Installeert een product op het netwerk
/J [/t ] [/g ]
Adverteert een product - m voor alle gebruikers, u voor huidige gebruiker
Verwijdert het product
Weergaveopties
/quiet
Stille modus, geen gebruikersinteractie
/passive
Modus zonder toezicht - alleen voortgangsbalk
/q[n|b|r|f]
Stelt gebruikersinterfaceniveau in
n - Geen gebruikersinterface
b - Basis gebruikersinterface
r - Verminderde gebruikersinterface
f - Volledige gebruikersinterface (standaard)
/help
Help-informatie
Herstart opties
/norestart
Start niet opnieuw op nadat de installatie is voltooid
/promptrestart
Vraagt de gebruiker indien nodig opnieuw op te starten
/forcerestart
Start de computer altijd opnieuw op na installatie
Logboekopties
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i - Statusberichten
w - Niet-fatale waarschuwingen
e - Alle foutmeldingen
a - Opstarten van acties
r - Actiespecifieke records
u - Gebruikersverzoeken
c - Initiële UI-parameters
m - Geheugen vol of fatale exit-informatie
o - Berichten over onvoldoende schijfruimte
p - Terminal eigenschappen
v - Uitgebreide uitvoer
x - Extra foutopsporingsinformatie
+ - Toevoegen aan bestaand logbestand
! - Spoel elke regel naar het logboek
* - Log alle informatie, behalve de v- en x-opties
/log
Equivalent van /l*
Update-opties
/update [;Update2.msp]
Geldt update(s)
/uninstall [;Update2.msp] /package Update(s) voor een product verwijderen
Reparatie opties
/f[p|e|c|m|s|o|d|a|u|v] Repareert een product
p - alleen als bestand ontbreekt
o - als een bestand ontbreekt of een oudere versie is geïnstalleerd (standaard)
e - als een bestand ontbreekt of een gelijke of oudere versie is geïnstalleerd
d - als een bestand ontbreekt of een andere versie is geïnstalleerd
c - als het bestand ontbreekt of de controlesom niet overeenkomt met de berekende waarde
a - dwingt alle bestanden opnieuw te installeren
u - alle vereiste gebruikersspecifieke registervermeldingen (standaard)
m - alle vereiste computerspecifieke registervermeldingen (standaard)
s - alle bestaande sneltoetsen (standaard)
v - loopt van de bron en haalt het lokale pakket opnieuw op
Openbare eigenschappen instellen
[PROPERTY=Eigenschapswaarde]
De optie die bij deze situatie hoort is /a. Hoewel het wordt beschreven als "Administratieve installatie - installeert een product op het netwerk", kan het worden gebruikt om de inhoud van een enkel MSI-pakket te extraheren naar kleinere individuele bestanden die kunnen worden onderhouden door een lapje. Het volgende commando kan worden gebruikt:
msiexec /a "pad\naar\pakket.msi" /qb TARGETDIR="pad\naar\de\bestemmingsmap"
TARGETDIR is een eigenschap die voor elk pakket gebruikelijk is en die de doelmap voor de inhoud van het MSI-pakket specificeert.
De schakelaar "/qb" vertelt Windows Installer om de basisinterface weer te geven tijdens het proces. Er verschijnt een dialoogvenster met de knop Annuleren en de voortgangsbalk.
Ik kan bijvoorbeeld het volgende commando gebruiken om het MSI-installatieprogramma van de FAR Manager uit te pakken:
msiexec /a "C:\Users\winaero\Downloads\Far30b4774.x64.20160902.msi" /qb TARGETDIR="C:\Users\winaero\Downloads\Far"
Als de doelmap niet bestaat, wordt deze automatisch gemaakt. In mijn geval wordt de submap Far in de map Download gemaakt.
De bovenstaande opdracht kan rechtstreeks in het dialoogvenster Uitvoeren worden ingevoerd.
U kunt de bovenstaande informatie gebruiken om een contextmenuopdracht toe te voegen om de inhoud van het MSI-bestand met één klik uit te pakken. Hier is hoe het kan.
Voeg Contextmenu-opdracht uitpakken toe aan MSI-bestanden
- Open Register-editor.
- Ga naar de volgende registersleutel:
HKEY_CLASSES_ROOT\Msi. Pakket\shell
Tip: Met één klik naar de gewenste registersleutel springen.
- Maak hier een nieuwe subsleutel aan en noem deze Extract.
- Maak onder de Extract-sleutel een nieuwe subsleutel en geef deze een naam Opdracht:
- Stel de standaardwaarde van de. in Opdracht subsleutel naar de volgende tekenreeks:
msiexec.exe /a "%1" /qb TARGETDIR="%1 Inhoud"
Zie de volgende schermafbeelding:
Zodra u met de rechtermuisknop op een MSI-pakket klikt in Verkenner, vindt u een nieuw contextmenu-item "Uitpakken". Als u het uitvoert, zal het een nieuwe map "package_name.msi Contents" maken in de huidige map en de inhoud van het pakket daar uitpakken. Zie de volgende schermafbeelding:
Om je tijd te besparen heb ik kant-en-klare registerbestanden gemaakt. Je kunt ze downloaden via onderstaande link.
Registerbestanden downloaden
Het bestand voor ongedaan maken is inbegrepen.
Deze truc werkt in Windows 10, Windows 8 en Windows 7.
Merk op dat sommige pakketten geen administratieve installatie ondersteunen. Ze kunnen niet worden geëxtraheerd met behulp van deze methode. Wanneer u een MSI-pakket op deze manier uitpakt, wordt het beheerdersinstallatiepunt (de map waarin het wordt uitgepakt) ook bruikbaar. Een Windows Installer-patch (MSP) kan worden gebruikt om deze bij te werken, zodat wanneer het pakket wordt geïnstalleerd, de patch ook wordt toegepast.