Extracting .exe file using powershell

11,577

Solution 1

If you have tried

start-process C:\Setup.exe -Argumentlist "/a"

Then it is not possible using powershell, this command is completely dependant on how the file was packaged, if all else fails I personally would use a utility like 7-Zip, but as you said you would not like to use utilities.

Solution 2

I had this same problem recently as well. Dewi's answer would not have worked for me. I solved it like this:

mv gs.exe gs.zip
Expand-Archive -Path gs.zip

Optionally, you can rename it back when you're done, if you need the exe for other purposes.

mv gs.zip gs.exe

Note that you'll need PowerShell 5 or newer to use Expand-Archive. Thankfully, this is available as a download all the way back to Win 7 as Microsoft KB3191566.

Solution 3

Yeah well powershell doesn't recognize all compression algorithms. I am trying to do this with an HP driver pack file which comes in a self extracting .exe file. Even if you change the filename to a .zip it will not extract the files and instead throws a New-Object exception error.

Share:
11,577
russianmysticpopOP
Author by

russianmysticpopOP

Updated on June 13, 2022

Comments

  • russianmysticpopOP
    russianmysticpopOP almost 2 years

    I am trying to extract .exe file using powershell without any other tools.

    I tried to use System.IO.Compression.ZipFile, but that works only for .zip files..

    $zip_file = Get-Item ("C:\Users\00WORK\gs\gs.exe")
    $destination = Get-Item ("C:\Users\tuna")
    [System.IO.Compression.ZipFile]::ExtractToDirectory($zip_file,$destination)
    

    Also tried this, but without any success

    start-process C:\Users\Downloads\gs.exe -Argumentlist "/a"
    

    Tried also this but once again without any succes

    $shell = new-object -com shell.application
    $zip = $shell.NameSpace(“C:\Users\00WORK\gs\gs.exe”)
    foreach($item in $zip.items())
    {
    $shell.Namespace(“C:\Users\tuna”).copyhere($item)
    }
    

    Thanks for help.