├── Add_Structure.ps1 ├── CHANGELOG.md ├── CommonFunctions.ps1 ├── Install_Run-in-Sandbox.ps1 ├── README.md ├── Remove_Structure.ps1 ├── Sources └── Run_in_Sandbox │ ├── 7z │ ├── 7-zip.chm │ ├── 7-zip.dll │ ├── 7-zip32.dll │ ├── 7z.dll │ ├── 7z.exe │ ├── 7z.sfx │ ├── 7zCon.sfx │ ├── 7zFM.exe │ ├── 7zG.exe │ ├── History.txt │ ├── License.txt │ ├── Uninstall.exe │ ├── descript.ion │ └── readme.txt │ ├── AppBundle_Install.ps1 │ ├── App_Bundle_template.sdbapp │ ├── EXE_Install.ps1 │ ├── IntuneWinAppUtilDecoder.exe │ ├── IntuneWin_Install.ps1 │ ├── Languages_XML │ ├── Language_de-DE.xml │ ├── Language_en-US.xml │ ├── Language_es-ES.xml │ ├── Language_fr-FR.xml │ └── Language_it-IT.xml │ ├── PsExec.exe │ ├── RunInSandbox.ps1 │ ├── RunInSandbox_Config.ps1 │ ├── RunInSandbox_Config.xaml │ ├── RunInSandbox_EXE.xaml │ ├── RunInSandbox_Intunewin.xaml │ ├── RunInSandbox_Params.xaml │ ├── Sandbox_Config.xml │ ├── ServiceUI.exe │ ├── assembly │ ├── MahApps.Metro.IconPacks.dll │ ├── MahApps.Metro.dll │ └── System.Windows.Interactivity.dll │ └── sandbox.ico ├── Template_files └── App_Bundle_template.sdbapp └── ps1_system.gif /Add_Structure.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [Switch]$NoSilent, 3 | [Switch]$NoCheckpoint 4 | ) 5 | 6 | $Current_Folder = $PSScriptRoot 7 | 8 | Unblock-File -Path $Current_Folder\CommonFunctions.ps1 9 | . "$Current_Folder\CommonFunctions.ps1" 10 | 11 | 12 | if (Test-Path -Path $Log_File) { 13 | Remove-Item -Path $Log_File 14 | } 15 | New-Item -Path $Log_File -Type file -Force | Out-Null 16 | 17 | 18 | Write-LogMessage -Message_Type "INFO" -Message "Starting the configuration of RunInSandbox" 19 | 20 | Test-ForAdmin 21 | 22 | Test-ForSandbox 23 | 24 | Test-ForSources 25 | 26 | 27 | $Progress_Activity = "Enabling Run in Sandbox context menus" 28 | Write-Progress -Activity $Progress_Activity -PercentComplete 1 29 | 30 | 31 | Copy-Sources 32 | 33 | Unblock-Sources 34 | 35 | if ($NoSilent) { 36 | powershell -NoProfile $Current_Folder\Sources\Run_in_Sandbox\RunInSandbox_Config.ps1 37 | } 38 | 39 | 40 | Get-Config 41 | Write-Progress -Activity $Progress_Activity -PercentComplete 10 42 | 43 | New-Checkpoint 44 | Write-Progress -Activity $Progress_Activity -PercentComplete 20 45 | 46 | Write-LogMessage -Message_Type "INFO" -Message "Adding context menu" 47 | Write-LogMessage -Message_Type "INFO" -Message "OS version is: $Windows_Version" 48 | 49 | 50 | if ($Add_CMD -eq $True) { 51 | Add-RegItem -Sub_Reg_Path "cmdfile" -Type "CMD" 52 | Add-RegItem -Sub_Reg_Path "batfile" -Type "CMD" -Entry_Name "BAT" 53 | } 54 | Write-Progress -Activity $Progress_Activity -PercentComplete 25 55 | 56 | if ($Add_EXE -eq $True) { 57 | Add-RegItem -Sub_Reg_Path "exefile" -Type "EXE" 58 | } 59 | Write-Progress -Activity $Progress_Activity -PercentComplete 30 60 | 61 | if ($Add_Folder -eq $True) { 62 | Add-RegItem -Sub_Reg_Path "Directory\Background" -Type "Folder_Inside" -Entry_Name "this folder" -Key_Label "Share this folder in a Sandbox" 63 | Add-RegItem -Sub_Reg_Path "Directory" -Type "Folder_On" -Entry_Name "this folder" -Key_Label "Share this folder in a Sandbox" 64 | } 65 | Write-Progress -Activity $Progress_Activity -PercentComplete 35 66 | 67 | if ($Add_HTML -eq $True) { 68 | Add-RegItem -Sub_Reg_Path "MSEdgeHTM" -Type "HTML" -Key_Label "Run this web link in Sandbox" 69 | Add-RegItem -Sub_Reg_Path "ChromeHTML" -Type "HTML" -Key_Label "Run this web link in Sandbox" 70 | Add-RegItem -Sub_Reg_Path "IE.AssocFile.HTM" -Type "HTML" -Key_Label "Run this web link in Sandbox" 71 | Add-RegItem -Sub_Reg_Path "IE.AssocFile.URL" -Type "HTML" -Key_Label "Run this URL in Sandbox" 72 | } 73 | Write-Progress -Activity $Progress_Activity -PercentComplete 40 74 | 75 | if ($Add_Intunewin -eq $True) { 76 | #Add-RegItem -Sub_Reg_Path ".intunewin" -Type "Intunewin" 77 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.intunewin" -Type "Intunewin" 78 | } 79 | Write-Progress -Activity $Progress_Activity -PercentComplete 45 80 | 81 | if ($Add_ISO -eq $True) { 82 | Add-RegItem -Sub_Reg_Path "Windows.IsoFile" -Type "ISO" -Key_Label "Extract ISO file in Sandbox" 83 | Add-RegItem -Reg_Path "$HKCU_Classes" -Sub_Reg_Path ".iso" -Type "ISO" -Key_Label "Extract ISO file in Sandbox" 84 | } 85 | Write-Progress -Activity $Progress_Activity -PercentComplete 50 86 | 87 | if ($Add_MSI -eq $True) { 88 | Add-RegItem -Sub_Reg_Path "Msi.Package" -Type "MSI" 89 | } 90 | Write-Progress -Activity $Progress_Activity -PercentComplete 55 91 | 92 | if ($Add_MSIX -eq $True) { 93 | $MSIX_Shell_Registry_Key = "Registry::HKEY_CLASSES_ROOT\.msix\OpenWithProgids" 94 | if (Test-Path -Path $MSIX_Shell_Registry_Key) { 95 | $Get_Default_Value = (Get-Item -Path $MSIX_Shell_Registry_Key).Property 96 | if ($Get_Default_Value) { 97 | Add-RegItem -Sub_Reg_Path "$Get_Default_Value" -Type "MSIX" 98 | } 99 | } 100 | $Default_MSIX_HKCU = "$HKCU_Classes\.msix" 101 | if (Test-Path -Path $Default_MSIX_HKCU) { 102 | $Get_Default_Value = (Get-Item -Path "$Default_MSIX_HKCU\OpenWithProgids").Property 103 | if ($Get_Default_Value) { 104 | Add-RegItem -Reg_Path $HKCU_Classes -Sub_Reg_Path "$Get_Default_Value" -Type "MSIX" 105 | } 106 | } 107 | } 108 | Write-Progress -Activity $Progress_Activity -PercentComplete 60 109 | 110 | if ($Add_MultipleApp -eq $True) { 111 | Add-RegItem -Sub_Reg_Path ".sdbapp" -Type "SDBApp" -Entry_Name "application bundle" 112 | } 113 | Write-Progress -Activity $Progress_Activity -PercentComplete 65 114 | 115 | if ($Add_PDF -eq $True) { 116 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.pdf" -Type "PDF" -Key_Label "Open PDF in Sandbox" 117 | } 118 | Write-Progress -Activity $Progress_Activity -PercentComplete 75 119 | 120 | if ($Add_PPKG -eq $True) { 121 | Add-RegItem -Sub_Reg_Path "Microsoft.ProvTool.Provisioning.1" -Type "PPKG" 122 | } 123 | Write-Progress -Activity $Progress_Activity -PercentComplete 80 124 | 125 | if ($Add_PS1 -eq $True) { 126 | Write-LogMessage -Message_Type "INFO" -Message "Checking OS Version for PS1..." 127 | if ($Windows_Version -like "*Windows 10*") { 128 | Write-LogMessage -Message_Type "INFO" -Message "Running on Windows 10" 129 | 130 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1Basic" -Entry_Name "PS1 as user" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 131 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1System" -Entry_Name "PS1 as system" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 132 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1Params" -Entry_Name "PS1 with Parameters" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 133 | } 134 | 135 | if ($Windows_Version -like "*Windows 11*") { 136 | $Registry_Set = $False 137 | Write-LogMessage -Message_Type "INFO" -Message "Running on Windows 11" 138 | 139 | if (Test-Path -Path $HKCU_Classes) { 140 | $Default_PS1_HKCU = "$HKCU_Classes\.ps1" 141 | $OpenWithProgids_Key = "$Default_PS1_HKCU\OpenWithProgids" 142 | if (Test-Path -Path $OpenWithProgids_Key) { 143 | $Get_OpenWithProgids_Default_Value = (Get-Item -Path $OpenWithProgids_Key).Property 144 | ForEach ($Prop in $Get_OpenWithProgids_Default_Value) { 145 | Add-RegItem -Reg_Path "$HKCU_Classes" -Sub_Reg_Path "$Prop" -Type "PS1Basic" -Entry_Name "PS1 as user" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 146 | Add-RegItem -Reg_Path "$HKCU_Classes" -Sub_Reg_Path "$Prop" -Type "PS1System" -Entry_Name "PS1 as system" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 147 | Add-RegItem -Reg_Path "$HKCU_Classes" -Sub_Reg_Path "$Prop" -Type "PS1Params" -Entry_Name "PS1 with Parameters" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 148 | } 149 | $Registry_Set = $True 150 | } 151 | 152 | # ADDING CONTEXT MENU DEPENDING OF THE USERCHOICE 153 | # The userchoice for PS1 is located in: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\UserChoice 154 | $PS1_UserChoice = "$HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\UserChoice" 155 | $Get_UserChoice = (Get-ItemProperty -Path $PS1_UserChoice).ProgID 156 | 157 | $HKCR_UserChoice_Key = "Registry::HKEY_CLASSES_ROOT\$Get_UserChoice" 158 | $PS1_Shell_Registry_Key = "$HKCR_UserChoice_Key\Shell" 159 | if (Test-Path -Path $PS1_Shell_Registry_Key) { 160 | Add-RegItem -Sub_Reg_Path "$Get_UserChoice" -Type "PS1Basic" -Entry_Name "PS1 as user" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 161 | Add-RegItem -Sub_Reg_Path "$Get_UserChoice" -Type "PS1System" -Entry_Name "PS1 as system" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 162 | Add-RegItem -Sub_Reg_Path "$Get_UserChoice" -Type "PS1Params" -Entry_Name "PS1 with Parameters" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 163 | $Registry_Set = $True 164 | } 165 | } 166 | if ($Registry_Set -eq $False) { 167 | Write-LogMessage -Message_Type "WARNING" -Message "Couldn´t set the correct registry keys. You probably don´t have any programs selected as default for .ps1 extension!" 168 | Write-LogMessage -Message_Type "WARNING" -Message "Will try anyway using the method for Windows 10" 169 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1Basic" -Entry_Name "PS1 as user" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 170 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1System" -Entry_Name "PS1 as system" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 171 | Add-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1Params" -Entry_Name "PS1 with Parameters" -Info_Type "PS1" -MainMenuLabel "Run PS1 in Sandbox" -MainMenuSwitch 172 | } 173 | } 174 | } 175 | Write-Progress -Activity $Progress_Activity -PercentComplete 85 176 | 177 | if ($Add_Reg -eq $True) { 178 | Add-RegItem -Sub_Reg_Path "regfile" -Type "REG" -Key_Label "Test reg file in Sandbox" 179 | } 180 | Write-Progress -Activity $Progress_Activity -PercentComplete 90 181 | 182 | if ($Add_VBS -eq $True) { 183 | Add-RegItem -Sub_Reg_Path "VBSFile" -Type "VBSBasic" -Entry_Name "VBS" -MainMenuLabel "Run VBS in Sandbox" -MainMenuSwitch 184 | Add-RegItem -Sub_Reg_Path "VBSFile" -Type "VBSParams" -Entry_Name "VBS with Parameters" -Info_Type "VBS" -MainMenuLabel "Run VBS in Sandbox" -MainMenuSwitch 185 | } 186 | Write-Progress -Activity $Progress_Activity -PercentComplete 95 187 | 188 | if ($Add_ZIP -eq $True) { 189 | # Run on ZIP 190 | Add-RegItem -Sub_Reg_Path "CompressedFolder" -Type "ZIP" -Key_Label "Extract ZIP in Sandbox" 191 | 192 | # Run on ZIP if WinRAR is installed 193 | if (Test-Path -Path "Registry::HKEY_CLASSES_ROOT\WinRAR.ZIP") { 194 | Add-RegItem -Sub_Reg_Path "WinRAR.ZIP" -Type "ZIP" -Key_Label "Extract ZIP (WinRAR) in Sandbox" 195 | } 196 | 197 | # Run on 7z 198 | if (Test-Path -Path "Registry::HKEY_CLASSES_ROOT\Applications\7zFM.exe") { 199 | Add-RegItem -Sub_Reg_Path "Applications\7zFM.exe" -Type "7z" -Info_Type "7z" -Entry_Name "ZIP" -Key_Label "Extract 7z file in Sandbox" 200 | } 201 | if (Test-Path -Path "Registry::HKEY_CLASSES_ROOT\7-Zip.7z") { 202 | Add-RegItem -Sub_Reg_Path "7-Zip.7z" -Type "7z" -Info_Type "7z" -Entry_Name "ZIP" -Key_Label "Extract 7z file in Sandbox" 203 | } 204 | if (Test-Path -Path "Registry::HKEY_CLASSES_ROOT\7-Zip.rar") { 205 | Add-RegItem -Sub_Reg_Path "7-Zip.rar" -Type "7z" -Info_Type "7z" -Entry_Name "ZIP" -Key_Label "Extract RAR file in Sandbox" 206 | } 207 | } 208 | Write-Progress -Activity $Progress_Activity -PercentComplete 100 209 | 210 | Copy-Item -Path $Log_File -Destination $Destination_folder -Force 211 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 5 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6 | 7 | ## 2024-08-26 8 | ### Fixed 9 | - Fixed Subcommands Entries for Powershell and VBS 10 | 11 | 12 | ## 2024-08-20 13 | ### Added 14 | - Added common functions script 15 | - Added deep-clean option for uninstalling Run-in-Sandbox 16 | ### Changed 17 | - Rewritten install and uninstall script and exported common functions to separate file 18 | ### Fixed 19 | - Slightly adjusted intunewin and sdbapp scripts 20 | 21 | 22 | ## 2024-05-22 23 | ### Added 24 | - Added easy install Script 25 | ### Changed 26 | - Improved console output and make it easier readable 27 | - Improved readme and install steps 28 | 29 | 30 | ## 2024-05-14 31 | ### Added 32 | - Added some better error handling and checking for needed features 33 | ### Fixed 34 | - Probably fixed [#4]https://github.com/Joly0/Run-in-Sandbox/issues/4 35 | ### Changed 36 | - Improved the way, exe files are handled inside the sandbox 37 | 38 | 39 | ## 2023-07-14 40 | ### Fixed 41 | - Finally fixed running intunewin with serviceUI and psexec 42 | - Fixed [#40]https://github.com/damienvanrobaeys/Run-in-Sandbox/issues/40 43 | - Fixed [#41]https://github.com/damienvanrobaeys/Run-in-Sandbox/issues/41 44 | ### Changed 45 | - Changed formatting to OTBS using "Invoke-Formatter" cmdlet in "Script-Analyzer" module (On-going discussion [#44]https://github.com/damienvanrobaeys/Run-in-Sandbox/discussions/44) and applied some powershell best-pratices 46 | 47 | 48 | ## 2023-05-01 49 | ### Added 50 | - Reimplemented running Intunewin as System using psexec (serviceui will stay) 51 | ### Fixed 52 | - Fixed [#18]https://github.com/damienvanrobaeys/Run-in-Sandbox/issues/18 53 | 54 | 55 | ## 2023-05-03 56 | ### Added 57 | - Added option to run .intunewin via sdbapp 58 | ### Changed 59 | - Changed Intunewin_Content_File and Intunewin_Command_File to be parameters for IntuneWin_Install.ps1 60 | 61 | 62 | ## 2023-03-29 63 | ### Added 64 | - Added context menu entry for opening PDF in Sandbox 65 | ### Changed 66 | - Completely rewrote alot of code in Add_Structure.ps1 67 | 68 | 69 | ## 2023-03-22 70 | ### Added 71 | - Added context menu entry for running CMD/BAT in Sandbox 72 | 73 | 74 | ## 2023-03-21 75 | ### Changed 76 | - Readded 7z part and adjusted 7z reg key path 77 | 78 | 79 | ## 2023-03-20 80 | ### Changed 81 | - Completly refactored RunInSandbox.ps1 to use switch instead of ifelse and rearranged alot of code 82 | ### Fixed 83 | - Fixed some issues with loading iso´s, exe´s and zip´s 84 | ### Removed 85 | - Removed 7z part of RunInSandbox.ps1 because non-functional 86 | 87 | 88 | ## 2023-03-07 89 | ### Added 90 | - Added ServiceUI 91 | ### Changed 92 | - Replaced PSexec with ServiceUI for intunewin sandbox 93 | ### Removed 94 | - Removed PSexec in favor of ServiceUI 95 | 96 | 97 | ## 2023-03-06 98 | ### Added 99 | - Added option to Sandbox_Config.xml to cleanup leftover .wsb file afterwards (default is true) 100 | ### Changed 101 | - .wsb is not executed by the "Start-Process"-cmdlet with -wait parameter 102 | 103 | 104 | ## 2023-03-03 105 | ### Added 106 | - Added -noprofile to powershell commands to improve performance 107 | ### Changed 108 | - Applied formatting of scripts and applied best practices 109 | ### Fixed 110 | - Fixed .ps1 conext menu 111 | 112 | 113 | ## 2021-11-16 114 | ### Added 115 | - Add a context menu for running PS1 as system in Sandbox 116 | - Add a context menu for running MSIX in Sandbox 117 | - Add a context menu for running PPKG in Sandbox 118 | - Add a context menu for opening URL in Sandbox 119 | - Add a context menu for extracting ISO in Sandbox 120 | - Add a context menu for extracting 7z file in Sandbox 121 | ### Fixed 122 | - Fix a bug where context menu for PS1 does not appear on Windows 11 123 | 124 | 125 | ## 2021-09-21 126 | ### Added 127 | - Add a context menu for reg file, to run them in Sandbox 128 | - Add ability to run multiple apps in the same Sandbox session 129 | 130 | 131 | ## 2021-08-03 132 | ### Added 133 | - Add a context menu for intunewin file, to run them in Sandbox 134 | - Add ability to choose which content menu to add 135 | 136 | 137 | ## 2021-07-27 138 | ### Changed 139 | - Change the default path where WSB are saved after running Sandbox: now in %temp% 140 | 141 | 142 | ## 2021-07-21 143 | ### Changed 144 | - Updated the GUI when running EXE or MSI for more understanding 145 | - Updated the GUI when running PS1 for more understanding 146 | 147 | 148 | ## 2021-07-16 149 | ### Added 150 | - The Add_Structure.ps1 will now create a restore point 151 | - It will then check if Sources folder exists 152 | 153 | 154 | ## 2020-06-24 155 | ### Removed 156 | - Temporarily removed the main file [#9](https://github.com/damienvanrobaeys/Run-in-Sandbox/issues/9) 157 | ### Changed 158 | - Fixed detail language setting being French 159 | 160 | 161 | ## 2020-06-02 162 | ### Added 163 | - Add new WSB config options for Windows 10 2004. These new settings can be managed in the **Sources\Run_in_Sandbox\Sandbox_Config.xml** 164 | - New options: AudioInput, VideoInput, ProtectedClient, PrinterRedirection, ClipboardRedirection, MemoryInMB 165 | 166 | 167 | ## 2020-05-19 168 | ### Added 169 | - Added French, Italian, Spanish, English, and German languages for context menus. To configure language, edit **Main_Language** in **Sources\Run_in_Sandbox\Sandbox_Config.xml** -------------------------------------------------------------------------------- /CommonFunctions.ps1: -------------------------------------------------------------------------------- 1 | # Define global variables 2 | $TEMP_Folder = $env:temp 3 | $Log_File = "$TEMP_Folder\RunInSandbox_Install.log" 4 | $Run_in_Sandbox_Folder = "$env:ProgramData\Run_in_Sandbox" 5 | $XML_Config = "$Run_in_Sandbox_Folder\Sandbox_Config.xml" 6 | $Windows_Version = (Get-CimInstance -class Win32_OperatingSystem).Caption 7 | $Current_User_SID = (Get-ChildItem -Path Registry::\HKEY_USERS | Where-Object { Test-Path -Path "$($_.pspath)\Volatile Environment" } | ForEach-Object { (Get-ItemProperty -Path "$($_.pspath)\Volatile Environment") }).PSParentPath.split("\")[-1] 8 | $HKCU = "Registry::HKEY_USERS\$Current_User_SID" 9 | $HKCU_Classes = "Registry::HKEY_USERS\$Current_User_SID" + "_Classes" 10 | $Sandbox_Icon = "$env:ProgramData\Run_in_Sandbox\sandbox.ico" 11 | $Sources = $Current_Folder + "\" + "Sources\*" 12 | $Exported_Keys = @() 13 | 14 | [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null 15 | 16 | # Function to write log messages 17 | function Write-LogMessage { 18 | param ( 19 | [string]$Message, 20 | [string]$Message_Type 21 | ) 22 | 23 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date) 24 | Add-Content -Path $Log_File -Value "$MyDate - $Message_Type : $Message" 25 | $ForegroundColor = switch ($Message_Type) { 26 | "INFO" { 'White' } 27 | "SUCCESS" { 'Green' } 28 | "WARNING" { 'Yellow' } 29 | "ERROR" { 'DarkRed' } 30 | default { 'White' } 31 | } 32 | Write-Host "$MyDate - $Message_Type : $Message" -ForegroundColor $ForegroundColor 33 | } 34 | 35 | # Function to export registry configuration 36 | function Export-RegConfig { 37 | param ( 38 | [string] $Reg_Path, 39 | [string] $Backup_Folder = "$Run_in_Sandbox_Folder\Registry_Backup", 40 | [string] $Type, 41 | [string] $Sub_Reg_Path 42 | ) 43 | 44 | if ($Exported_Keys -contains $Reg_Path) { 45 | $Exported_Keys.Add($Reg_Path) 46 | } else { 47 | return 48 | } 49 | 50 | if (-not (Test-Path $Backup_Folder) ) { 51 | New-Item -ItemType Directory -Path $Backup_Folder -Force | Out-Null 52 | } 53 | 54 | Write-LogMessage -Message_Type "INFO" -Message "Exporting registry keys" 55 | 56 | $Backup_Path = $Backup_Folder + "\" + "Backup_" + $Type 57 | if ($Sub_Reg_Path) { 58 | $Backup_Path = $Backup_Path + "_" + $Sub_Reg_Path 59 | } 60 | $Backup_Path = $Backup_Path + ".reg" 61 | 62 | reg export $Reg_Path $Backup_Path /y > $null 2>&1 63 | 64 | # Check if the command ran successfully 65 | if ($?) { 66 | Write-LogMessage -Message_Type "SUCCESS" -Message "Exported `"$Reg_Path`" to `"$Backup_Path`"" 67 | } else { 68 | Write-LogMessage -Message_Type "ERROR" -Message "Failed to export `"$Reg_Path`"" 69 | } 70 | } 71 | 72 | # Function to add a registry item 73 | function Add-RegItem { 74 | param ( 75 | [string] $Reg_Path = "Registry::HKEY_CLASSES_ROOT", 76 | [string] $Sub_Reg_Path, 77 | [string] $Type, 78 | [string] $Entry_Name = $Type, 79 | [string] $Info_Type = $Type, 80 | [string] $Key_Label = "Run $Entry_Name in Sandbox", 81 | [string] $RegistryPathsFile = "$Run_in_Sandbox_Folder\RegistryEntries.txt", 82 | [string] $MainMenuLabel, 83 | [switch] $MainMenuSwitch 84 | ) 85 | 86 | $Base_Registry_Key = "$Reg_Path\$Sub_Reg_Path" 87 | $Shell_Registry_Key = "$Base_Registry_Key\Shell" 88 | $Key_Label_Path = "$Shell_Registry_Key\$Key_Label" 89 | $MainMenuLabel_Path = "$Shell_Registry_Key\$MainMenuLabel" 90 | $Command_Path = "$Key_Label_Path\Command" 91 | $Command_for = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -WindowStyle Hidden -NoProfile -ExecutionPolicy Unrestricted -sta -File C:\\ProgramData\\Run_in_Sandbox\\RunInSandbox.ps1 -Type $Type -ScriptPath `"%V`"" 92 | 93 | Export-RegConfig -Reg_Path $($Base_Registry_Key.Split("::")[-1]) -Type $Type -Sub_Reg_Path $Sub_Reg_Path -ErrorAction Continue 94 | 95 | try { 96 | # Log the root registry path to the specified file 97 | if (-not (Test-Path $RegistryPathsFile) ) { 98 | New-Item -ItemType File -Path $RegistryPathsFile -Force | Out-Null 99 | } 100 | 101 | if (-not (Test-Path -Path $Base_Registry_Key) ) { 102 | New-Item -Path $Base_Registry_Key -ErrorAction Stop | Out-Null 103 | } 104 | 105 | if (-not (Test-Path -Path $Shell_Registry_Key) ) { 106 | New-Item -Path $Shell_Registry_Key -ErrorAction Stop | Out-Null 107 | } 108 | 109 | if ($MainMenuSwitch) { 110 | if ( -not (Test-Path $MainMenuLabel_Path) ) { 111 | New-Item -Path $Shell_Registry_Key -Name $MainMenuLabel -Force | Out-Null 112 | New-ItemProperty -Path $MainMenuLabel_Path -Name "subcommands" -PropertyType String | Out-Null 113 | New-Item -Path $MainMenuLabel_Path -Name "Shell" -Force | Out-Null 114 | New-ItemProperty -Path $MainMenuLabel_Path -Name "icon" -PropertyType String -Value $Sandbox_Icon -ErrorAction Stop | Out-Null 115 | } 116 | $Key_Label_Path = "$MainMenuLabel_Path\Shell\$Key_Label" 117 | $Command_Path = "$Key_Label_Path\Command" 118 | } 119 | 120 | if (Test-Path -Path $Key_Label_Path) { 121 | Write-LogMessage -Message_Type "SUCCESS" -Message "Context menu for $Type has already been added" 122 | Add-Content -Path $RegistryPathsFile -Value $Key_Label_Path 123 | return 124 | } 125 | 126 | New-Item -Path $Key_Label_Path -ErrorAction Stop | Out-Null 127 | New-Item -Path $Command_Path -ErrorAction Stop | Out-Null 128 | if (-not $MainMenuSwitch) { 129 | New-ItemProperty -Path $Key_Label_Path -Name "icon" -PropertyType String -Value $Sandbox_Icon -ErrorAction Stop | Out-Null 130 | } 131 | Set-Item -Path $Command_Path -Value $Command_for -Force -ErrorAction Stop | Out-Null 132 | 133 | Add-Content -Path $RegistryPathsFile -Value $Key_Label_Path 134 | 135 | Write-LogMessage -Message_Type "SUCCESS" -Message "Context menu for `"$Info_Type`" has been added" 136 | } catch { 137 | Write-LogMessage -Message_Type "ERROR" -Message "Context menu for $Type could not be added" 138 | } 139 | } 140 | 141 | # Function to remove a registry item 142 | function Remove-RegItem { 143 | param ( 144 | [string] $Reg_Path = "Registry::HKEY_CLASSES_ROOT", 145 | [Parameter(Mandatory=$true)] [string] $Sub_Reg_Path, 146 | [Parameter(Mandatory=$true)] [string] $Type, 147 | [string] $Entry_Name = $Type, 148 | [string] $Info_Type = $Type, 149 | [string] $Key_Label = "Run $Entry_Name in Sandbox", 150 | [string] $MainMenuLabel, 151 | [switch] $MainMenuSwitch 152 | ) 153 | Write-LogMessage -Message_Type "INFO" -Message "Removing context menu for $Type" 154 | $Base_Registry_Key = "$Reg_Path\$Sub_Reg_Path" 155 | $Shell_Registry_Key = "$Base_Registry_Key\Shell" 156 | $Key_Label_Path = "$Shell_Registry_Key\$Key_Label" 157 | 158 | 159 | if (-not (Test-Path -Path $Key_Label_Path) ) { 160 | if ($DeepClean) { 161 | Write-LogMessage -Message_Type "INFO" -Message "Registry Path for $Type has already been removed by deepclean" 162 | return 163 | } 164 | Write-LogMessage -Message_Type "WARNING" -Message "Could not find path for $Type" 165 | return 166 | } 167 | 168 | try { 169 | # Get all child items and sort by depth (deepest first) 170 | $ChildItems = Get-ChildItem -Path $Key_Label_Path -Recurse | Sort-Object { $_.PSPath.Split('\').Count } -Descending 171 | 172 | foreach ($ChildItem in $ChildItems) { 173 | Remove-Item -LiteralPath $ChildItem.PSPath -Force -ErrorAction Stop 174 | } 175 | 176 | # Remove the main registry path if it still exists 177 | if (Test-Path -Path $Key_Label_Path) { 178 | Remove-Item -LiteralPath $Key_Label_Path -Force -ErrorAction Stop 179 | } 180 | 181 | Write-LogMessage -Message_Type "SUCCESS" -Message "Context menu for `"$Info_Type`" has been removed" 182 | } catch { 183 | Write-LogMessage -Message_Type "ERROR" -Message "Context menu for $Type couldn´t be removed" 184 | } 185 | } 186 | 187 | function Find-RegistryIconPaths { 188 | param ( 189 | [Parameter(Mandatory=$true)] [string]$rootRegistryPath, 190 | [string]$iconValueToMatch = "C:\\ProgramData\\Run_in_Sandbox\\sandbox.ico" 191 | ) 192 | 193 | # Export the registry at the specified rootRegistryPath 194 | $exportPath = "$env:TEMP\registry_export.reg" 195 | reg export $rootRegistryPath $exportPath /y > $null 2>&1 196 | 197 | # Initialize an empty array to store matching paths 198 | $matchingPaths = @() 199 | 200 | # Read the exported registry file 201 | $lines = Get-Content -Path $exportPath 202 | 203 | # Process each line in the exported registry file 204 | foreach ($line in $lines) { 205 | # Check if the line defines a new key 206 | if ($line -match '^\[([^\]]+)\]$') { 207 | $currentPath = $matches[1] 208 | } 209 | 210 | # If the line contains the icon value, add the current path to the list 211 | # If the line contains the icon value, add the current path to the list 212 | if ($line -match '^\s*\"Icon\"=\"([^\"]+)\"$' -and $matches[1] -eq $iconValueToMatch) { 213 | $currentPath = "REGISTRY::$currentPath" 214 | $matchingPaths += $currentPath 215 | } 216 | } 217 | $matchingPaths = $matchingPaths | Sort-Object 218 | return $matchingPaths 219 | } 220 | 221 | # Function to get the configuration from XML 222 | function Get-Config { 223 | if ( [string]::IsNullOrEmpty($XML_Config) ) { 224 | return 225 | } 226 | if (-not (Test-Path -Path $XML_Config) ) { 227 | return 228 | } 229 | $Get_XML_Content = [xml](Get-Content $XML_Config) 230 | 231 | $script:Add_EXE = $Get_XML_Content.Configuration.ContextMenu_EXE 232 | $script:Add_MSI = $Get_XML_Content.Configuration.ContextMenu_MSI 233 | $script:Add_PS1 = $Get_XML_Content.Configuration.ContextMenu_PS1 234 | $script:Add_VBS = $Get_XML_Content.Configuration.ContextMenu_VBS 235 | $script:Add_ZIP = $Get_XML_Content.Configuration.ContextMenu_ZIP 236 | $script:Add_Folder = $Get_XML_Content.Configuration.ContextMenu_Folder 237 | $script:Add_Intunewin = $Get_XML_Content.Configuration.ContextMenu_Intunewin 238 | $script:Add_MultipleApp = $Get_XML_Content.Configuration.ContextMenu_MultipleApp 239 | $script:Add_Reg = $Get_XML_Content.Configuration.ContextMenu_Reg 240 | $script:Add_ISO = $Get_XML_Content.Configuration.ContextMenu_ISO 241 | $script:Add_PPKG = $Get_XML_Content.Configuration.ContextMenu_PPKG 242 | $script:Add_HTML = $Get_XML_Content.Configuration.ContextMenu_HTML 243 | $script:Add_MSIX = $Get_XML_Content.Configuration.ContextMenu_MSIX 244 | $script:Add_CMD = $Get_XML_Content.Configuration.ContextMenu_CMD 245 | $script:Add_PDF = $Get_XML_Content.Configuration.ContextMenu_PDF 246 | } 247 | 248 | # Function to check if the script is run with admin privileges 249 | function Test-ForAdmin { 250 | $Run_As_Admin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) 251 | if (-not $Run_As_Admin) { 252 | Write-LogMessage -Message_Type "ERROR" -Message "The script has not been launched with admin rights" 253 | [System.Windows.Forms.MessageBox]::Show("Please run the tool with admin rights :-)") 254 | EXIT 255 | } 256 | Write-LogMessage -Message_Type "INFO" -Message "The script has been launched with admin rights" 257 | } 258 | 259 | # Function to check for source files 260 | function Test-ForSources { 261 | if (-not (Test-Path -Path $Sources)) { 262 | Write-LogMessage -Message_Type "ERROR" -Message "Sources folder is missing" 263 | [System.Windows.Forms.MessageBox]::Show("It seems you haven´t downloaded all the folder structure.`nThe folder `"Sources`" is missing !!!") 264 | EXIT 265 | } 266 | Write-LogMessage -Message_Type "SUCCESS" -Message "The sources folder exists" 267 | 268 | $Check_Sources_Files_Count = (Get-ChildItem -Path "$Current_Folder\Sources\Run_in_Sandbox" -Recurse).count 269 | if ($Check_Sources_Files_Count -lt 40) { 270 | Write-LogMessage -Message_Type "ERROR" -Message "Some contents are missing" 271 | [System.Windows.Forms.MessageBox]::Show("It seems you haven´t downloaded all the folder structure !!!") 272 | EXIT 273 | } 274 | } 275 | 276 | # Function to check if the Windows Sandbox feature is installed 277 | function Test-ForSandbox { 278 | try { 279 | $Is_Sandbox_Installed = (Get-WindowsOptionalFeature -Online -ErrorAction SilentlyContinue | Where-Object { $_.featurename -eq "Containers-DisposableClientVM" }).state 280 | } catch { 281 | if (Test-Path -Path "C:\Windows\System32\WindowsSandbox.exe") { 282 | Write-LogMessage -Message_Type "WARNING" -Message "It looks like you have the `Windows Sandbox` Feature installed, but your `TrustedInstaller` Service is disabled." 283 | Write-LogMessage -Message_Type "WARNING" -Message "The Script will continue, but you should check for issues running Windows Sandbox." 284 | $Is_Sandbox_Installed = "Enabled" 285 | } else { 286 | $Is_Sandbox_Installed = "Disabled" 287 | } 288 | } 289 | if ($Is_Sandbox_Installed -eq "Disabled") { 290 | Write-LogMessage -Message_Type "ERROR" -Message "The feature `Windows Sandbox` is not installed !!!" 291 | [System.Windows.Forms.MessageBox]::Show("The feature `Windows Sandbox` is not installed !!!") 292 | EXIT 293 | } 294 | } 295 | 296 | # Function to check if the Sandbox folder exists 297 | function Test-ForSandboxFolder { 298 | if ( [string]::IsNullOrEmpty($Sandbox_Folder) ) { 299 | return 300 | } 301 | if (-not (Test-Path -Path $Sandbox_Folder) ) { 302 | [System.Windows.Forms.MessageBox]::Show("Can not find the folder $Sandbox_Folder") 303 | EXIT 304 | } 305 | } 306 | 307 | function Copy-Sources { 308 | try { 309 | Copy-Item -Path $Sources -Destination $env:ProgramData -Force -Recurse | Out-Null 310 | Write-LogMessage -Message_Type "SUCCESS" -Message "Sources have been copied in $env:ProgramData\Run_in_Sandbox" 311 | } catch { 312 | Write-LogMessage -Message_Type "ERROR" -Message "Sources have not been copied in $env:ProgramData\Run_in_Sandbox" 313 | EXIT 314 | } 315 | 316 | if (-not (Test-Path -Path "$env:ProgramData\Run_in_Sandbox\RunInSandbox.ps1") ) { 317 | Write-LogMessage -Message_Type "ERROR" -Message "File RunInSandbox.ps1 is missing" 318 | [System.Windows.Forms.MessageBox]::Show("File RunInSandbox.ps1 is missing !!!") 319 | EXIT 320 | } 321 | } 322 | 323 | function Unblock-Sources { 324 | $Sources_Unblocked = $False 325 | try { 326 | Get-ChildItem -Path $Run_in_Sandbox_Folder -Recurse | Unblock-File 327 | Write-LogMessage -Message_Type "SUCCESS" -Message "Sources files have been unblocked" 328 | $Sources_Unblocked = $True 329 | } catch { 330 | Write-LogMessage -Message_Type "ERROR" -Message "Sources files have not been unblocked" 331 | EXIT 332 | } 333 | 334 | if ($Sources_Unblocked -ne $True) { 335 | Write-LogMessage -Message_Type "ERROR" -Message "Source files could not be unblocked" 336 | [System.Windows.Forms.MessageBox]::Show("Source files could not be unblocked") 337 | EXIT 338 | } 339 | } 340 | 341 | function New-Checkpoint { 342 | if (-not $NoCheckpoint) { 343 | $SystemRestoreEnabled = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" -Name "RPSessionInterval").RPSessionInterval 344 | if ($SystemRestoreEnabled -eq 0) { 345 | Write-LogMessage -Message_Type "WARNING" -Message "System Restore feature is disabled. Enable this to create a System restore point" 346 | } else { 347 | $Checkpoint_Command = '-Command Checkpoint-Computer -Description "Windows_Sandbox_Context_menus" -RestorePointType "MODIFY_SETTINGS" -ErrorAction Stop' 348 | $ReturnValue = Start-Process -FilePath "C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe" -ArgumentList $Checkpoint_Command -Wait -PassThru -WindowStyle Minimized 349 | if ($ReturnValue.ExitCode -eq 0) { 350 | Write-LogMessage -Message_Type "SUCCESS" -Message "Creation of restore point `"Add Windows Sandbox Context menus`"" 351 | } else { 352 | Write-LogMessage -Message_Type "ERROR" -Message "Creation of restore point `"Add Windows Sandbox Context menus`" failed." 353 | Write-LogMessage -Message_Type "ERROR" -Message "Press any button to continue anyway." 354 | Read-Host 355 | } 356 | } 357 | } 358 | } -------------------------------------------------------------------------------- /Install_Run-in-Sandbox.ps1: -------------------------------------------------------------------------------- 1 | # Function to restart the script with admin rights 2 | function Restart-ScriptWithAdmin { 3 | if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { 4 | Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -NoExit -Command `"(Invoke-webrequest -URI `"https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/master/Install_Run-in-Sandbox.ps1`").Content | Invoke-Expression`"" -Verb RunAs 5 | exit 6 | } 7 | } 8 | # Restart the script with admin rights if not already running as admin 9 | Restart-ScriptWithAdmin 10 | 11 | # Define the URL and file paths 12 | $zipUrl = "https://github.com/Joly0/Run-in-Sandbox/archive/refs/heads/master.zip" 13 | $tempPath = [System.IO.Path]::GetTempPath() 14 | $zipPath = Join-Path -Path $tempPath -ChildPath "master.zip" 15 | $extractPath = Join-Path -Path $tempPath -ChildPath "Run-in-Sandbox-master" 16 | 17 | 18 | # Remove existing extracted folder if it exists 19 | if (Test-Path $extractPath) { 20 | try { 21 | Write-Host "Removing existing extracted folder..." 22 | Remove-Item -Path $extractPath -Recurse -Force 23 | Write-Host "Existing extracted folder removed." 24 | } catch { 25 | Write-Error "Failed to remove existing extracted folder: $_" 26 | exit 1 27 | } 28 | } 29 | 30 | # Download the zip file 31 | try { 32 | Write-Host "Downloading zip file..." 33 | $ProgressPreference = 'SilentlyContinue' 34 | Invoke-WebRequest -Uri $zipUrl -OutFile $zipPath -UseBasicParsing 35 | $ProgressPreference = 'Continue' 36 | Write-Host "Download completed." 37 | } catch { 38 | Write-Error "Failed to download the zip file: $_" 39 | exit 1 40 | } 41 | 42 | # Extract the zip file 43 | try { 44 | Write-Host "Extracting zip file..." 45 | $ProgressPreference = 'SilentlyContinue' 46 | Expand-Archive -Path $zipPath -DestinationPath $tempPath 47 | $ProgressPreference = 'Continue' 48 | Write-Host "Extraction completed." 49 | } catch { 50 | Write-Error "Failed to extract the zip file: $_" 51 | exit 1 52 | } 53 | 54 | # Remove the zip file 55 | try { 56 | Write-Host "Removing zip file..." 57 | Remove-Item -Path $zipPath 58 | Write-Host "Zip file removed." 59 | } catch { 60 | Write-Error "Failed to remove the zip file: $_" 61 | exit 1 62 | } 63 | 64 | # Construct the path to the add_structure.ps1 script 65 | $addStructureScript = Join-Path -Path $extractPath -ChildPath "Add_Structure.ps1" 66 | 67 | # Set Execution Policy and unblock files 68 | Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted 69 | Get-ChildItem -LiteralPath $extractPath -Filter "*.ps1" | Unblock-File 70 | 71 | # Execute the add_structure.ps1 script with the "-NoCheckpoint" parameter if it was provided 72 | try { 73 | Write-Host "Executing Add_Structure.ps1 script..." 74 | if ($NoCheckpoint) { 75 | & $addStructureScript -NoCheckpoint 76 | } else { 77 | & $addStructureScript 78 | } 79 | Write-Host "Script execution completed." 80 | } catch { 81 | Write-Error "Failed to execute add_structure.ps1: $_" 82 | exit 1 83 | } 84 | 85 | Read-Host "Installation finished. Press Enter to exit." 86 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Run in Sandbox: a quick way to run/extract files in Windows Sandbox from a right-click 2 | ###### *[View the full blog post here](https://www.systanddeploy.com/2023/06/runinsandbox-quick-way-to-runextract.html)* 3 | 4 | #### Original Author & creator: Damien VAN ROBAEYS 5 | #### Rewritten and maintained now by: Joly0 6 | 7 | This allows you to do the below things in Windows Sandbox **just from a right-click** by adding context menus: 8 | - Run PS1 as user or system in Sandbox 9 | - Run CMD, VBS, EXE, MSI in Sandbox 10 | - Run Intunewin file 11 | - Open URL or HTML file in Sandbox 12 | - Open PDF file in Sandbox 13 | - Extract ZIP file directly in Sandbox 14 | - Extract 7z file directly in Sandbox 15 | - Extract ISO directly in Sandbox 16 | - Share a specific folder in Sandbox 17 | - Run multiple app´s/scripts in the same Sandbox session 18 | 19 | ![alt text](https://github.com/damienvanrobaeys/Run-in-Sandbox/blob/master/ps1_system.gif) 20 | 21 | **Note that this project has been build on personal time, it's not a professional project. Use it at your own risk, and please read How to install it before running it.** 22 |
23 |
24 |
25 |
26 | 27 | # How to install it ? 28 | All the steps need to be executed from the Host, not inside the Sandbox 29 | 30 | ### __Method 1 - PowerShell (Recommended)__ 31 | - Right-click on the Windows start menu and select PowerShell or Terminal (Not CMD), preferably as admin. 32 | - Copy and paste the code below and press enter: 33 | ##### __`irm https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/master/Install_Run-in-Sandbox.ps1 | iex`__ 34 | - You will see the process being started. You will probably be asked to grant admin rights if not started as admin. 35 | - That's all. 36 | 37 | Note - On older Windows builds you may need to run the below command first: \ 38 | __`[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12`__ 39 |
40 |
41 | 42 | ### __Method 2 - Traditional__ 43 | This method allows you to use the parameters "-NoCheckpoint" to skip creation of a restore point and "-NoSilent" to give a bit more output 44 | - Download the ZIP Run-in-Sandbox project (this is the main prerequiste) 45 | - Extract the ZIP 46 | - The Run-in-Sandbox-master **should contain** at least Add_Structure.ps1 and a Sources folder 47 | - Please **do not download only** Add_Structure.ps1 48 | - The Sources folder **should contain** folder Run_in_Sandbox containing 58 files 49 | - Once you have downloaded the folder structure, **check if files have not be blocked after download** 50 | - Do a right-click on Add_Structure.ps1 and check if needed check Unblocked 51 | - Run Add_Structure.ps1 **with admin rights** 52 |
53 | -------------------------------------------------------------------------------- /Remove_Structure.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [Switch]$DeepClean 3 | ) 4 | 5 | $Current_Folder = $PSScriptRoot 6 | 7 | Unblock-File -Path $Current_Folder\CommonFunctions.ps1 8 | . "$Current_Folder\CommonFunctions.ps1" 9 | 10 | 11 | Test-ForSandboxFolder 12 | Test-ForAdmin 13 | Get-Config 14 | 15 | if ( (Test-Path -LiteralPath $Run_in_Sandbox_Folder) -and (-not $DeepClean) ) { 16 | Write-LogMessage -Message_Type "Warning" -Message "A lot of things have changed regarding installing and uninstalling Run-in-Sandbox" 17 | Write-LogMessage -Message_Type "Warning" -Message "It is recommended to run this script again with the -DeepClean parameter" 18 | Write-LogMessage -Message_Type "Warning" -Message "Otherwise it should be safe to just continue uninstalling, but leftovers might remain on the system" 19 | Write-LogMessage -Message_Type "Info" -Message "Press `"Enter`" button to continue" 20 | Read-Host 21 | } 22 | 23 | if ($DeepClean) { 24 | Write-LogMessage -Message_Type "INFO" -Message "Script has been started with deep cleaning enabled. This might take a moment" 25 | [String[]] $results = @() 26 | $results = Find-RegistryIconPaths -rootRegistryPath 'HKEY_CLASSES_ROOT' 27 | $results += Find-RegistryIconPaths -rootRegistryPath 'HKEY_CLASSES_ROOT\SystemFileAssociations' 28 | $results += Find-RegistryIconPaths -rootRegistryPath $HKCU_Classes 29 | $results = $results | Where-Object { $_ -notlike "REGISTRY::HKEY_CLASSES_ROOT\SystemFileAssociations\SystemFileAssociations*" } 30 | $results = $results | Select-Object -Unique | Sort-Object 31 | 32 | foreach ($reg_path in $results) { 33 | try { 34 | # Get all child items and sort by depth (deepest first) 35 | Get-ChildItem -Path $reg_path -Recurse | Sort-Object { $_.PSPath.Split('\').Count } -Descending | Select-Object -Property PSPath -ExpandProperty PSPath | Remove-Item -Force -Confirm:$false -ErrorAction Stop 36 | 37 | # Remove the main registry path if it still exists 38 | if (Test-Path -Path $reg_path) { 39 | Remove-Item -LiteralPath $reg_path -Force -Recurse -Confirm:$false -ErrorAction Stop 40 | } 41 | 42 | Write-LogMessage -Message_Type "SUCCESS" -Message "Path: `"$reg_path`" has been removed" 43 | } catch { 44 | Write-LogMessage -Message_Type "ERROR" -Message "Path: `"$reg_path`" couldn´t be removed" 45 | } 46 | } 47 | Write-LogMessage -Message_Type "INFO" -Message "Deep cleaning finished" 48 | } 49 | 50 | 51 | 52 | if ($Add_CMD -eq $True) { 53 | Remove-RegItem -Sub_Reg_Path "cmdfile" -Type "CMD" 54 | Remove-RegItem -Sub_Reg_Path "batfile" -Type "BAT" 55 | } 56 | 57 | if ($Add_EXE -eq $True) { 58 | Remove-RegItem -Sub_Reg_Path "exefile" -Type "EXE" 59 | } 60 | 61 | if ($Add_Folder -eq $True) { 62 | Remove-RegItem -Sub_Reg_Path "Directory\Background" -Type "Folder_Inside" -Entry_Name "this folder" -Key_Label "Share this folder in a Sandbox" 63 | Remove-RegItem -Sub_Reg_Path "Directory" -Type "Folder_On" -Entry_Name "this folder" -Key_Label "Share this folder in a Sandbox" 64 | } 65 | 66 | if ($Add_HTML -eq $True) { 67 | Remove-RegItem -Sub_Reg_Path "MSEdgeHTM" -Type "HTML" -Key_Label "Run this web link in Sandbox" 68 | Remove-RegItem -Sub_Reg_Path "ChromeHTML" -Type "HTML" -Key_Label "Run this web link in Sandbox" 69 | Remove-RegItem -Sub_Reg_Path "IE.AssocFile.HTM" -Type "HTML" -Key_Label "Run this web link in Sandbox" 70 | Remove-RegItem -Sub_Reg_Path "IE.AssocFile.URL" -Type "HTML" -Key_Label "Run this URL in Sandbox" 71 | } 72 | 73 | if ($Add_Intunewin -eq $True) { 74 | Remove-RegItem -Sub_Reg_Path ".intunewin" -Type "Intunewin" 75 | } 76 | 77 | if ($Add_ISO -eq $True) { 78 | Remove-RegItem -Sub_Reg_Path "Windows.IsoFile" -Type "ISO" -Key_Label "Extract ISO file in Sandbox" 79 | Remove-RegItem -Reg_Path "$HKCU_Classes" -Sub_Reg_Path ".iso" -Type "ISO" -Key_Label "Extract ISO file in Sandbox" 80 | } 81 | 82 | if ($Add_MSI -eq $True) { 83 | Remove-RegItem -Sub_Reg_Path "Msi.Package" -Type "MSI" 84 | } 85 | 86 | if ($Add_MSIX -eq $True) { 87 | $MSIX_Shell_Registry_Key = "Registry::HKEY_CLASSES_ROOT\.msix\OpenWithProgids" 88 | if (Test-Path -Path $MSIX_Shell_Registry_Key) { 89 | $Get_Default_Value = (Get-Item -Path $MSIX_Shell_Registry_Key).Property 90 | if ($Get_Default_Value) { 91 | Remove-RegItem -Sub_Reg_Path "$Get_Default_Value" -Type "MSIX" 92 | } 93 | } 94 | $Default_MSIX_HKCU = "$HKCU_Classes\.msix" 95 | if (Test-Path -Path $Default_MSIX_HKCU) { 96 | $Get_Default_Value = (Get-Item -Path "$Default_MSIX_HKCU\OpenWithProgids").Property 97 | if ($Get_Default_Value) { 98 | Remove-RegItem -Reg_Path $HKCU_Classes -Sub_Reg_Path "$Get_Default_Value" -Type "MSIX" 99 | } 100 | } 101 | } 102 | 103 | if ($Add_MultipleApp -eq $True) { 104 | Remove-RegItem -Sub_Reg_Path ".sdbapp" -Type "SDBApp" -Entry_Name "application bundle" 105 | } 106 | 107 | if ($Add_PDF -eq $True) { 108 | Remove-RegItem -Sub_Reg_Path "SystemFileAssociations\.pdf" -Type "PDF" -Key_Label "Open PDF in Sandbox" 109 | } 110 | 111 | if ($Add_PPKG -eq $True) { 112 | Remove-RegItem -Sub_Reg_Path "Microsoft.ProvTool.Provisioning.1" -Type "PPKG" 113 | } 114 | 115 | if ($Add_PS1 -eq $True) { 116 | if ($Windows_Version -like "*Windows 10*") { 117 | Remove-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1" 118 | } 119 | 120 | if ($Windows_Version -like "*Windows 11*") { 121 | $Registry_Set = $False 122 | if (Test-Path $HKCU_Classes) { 123 | $Default_PS1_HKCU = "$HKCU_Classes\.ps1" 124 | 125 | $OpenWithProgids_Key = "$Default_PS1_HKCU\OpenWithProgids" 126 | if (Test-Path $OpenWithProgids_Key) { 127 | $Get_OpenWithProgids_Default_Value = (Get-Item $OpenWithProgids_Key).Property 128 | ForEach ($Prop in $Get_OpenWithProgids_Default_Value) { 129 | Remove-RegItem -Reg_Path "$HKCU_Classes" -Sub_Reg_Path "$Prop" -Type "PS1" 130 | } 131 | $Registry_Set = $True 132 | } 133 | 134 | $PS1_UserChoice = "$HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\UserChoice" 135 | if (Test-Path -Path $PS1_UserChoice) { 136 | $Get_UserChoice = (Get-ItemProperty $PS1_UserChoice).ProgID 137 | $HKCR_UserChoice_Key = "Registry::HKEY_CLASSES_ROOT\$Get_UserChoice" 138 | Remove-RegItem -Sub_Reg_Path "$Get_UserChoice" -Type "PS1" 139 | $Registry_Set = $True 140 | } 141 | } 142 | if ($Registry_Set -eq $False) { 143 | Write-LogMessage -Message_Type "WARNING" -Message "Couldn´t remove the correct registry keys. You probably don´t have any programs selected as default for .ps1 extension!" 144 | Write-LogMessage -Message_Type "WARNING" -Message "Will try anyway using the method for Windows 10" 145 | Remove-RegItem -Sub_Reg_Path "SystemFileAssociations\.ps1" -Type "PS1" 146 | } 147 | } 148 | } 149 | 150 | if ($Add_Reg -eq $True) { 151 | Remove-RegItem -Sub_Reg_Path "regfile" -Type "REG" -Key_Label "Test reg file in Sandbox" 152 | } 153 | 154 | if ($Add_VBS -eq $True) { 155 | Remove-RegItem -Sub_Reg_Path "VBSFile" -Type "VBS" 156 | } 157 | 158 | if ($Add_ZIP -eq $True) { 159 | Remove-RegItem -Sub_Reg_Path "CompressedFolder" -Type "ZIP" -Key_Label "Extract ZIP in Sandbox" 160 | Remove-RegItem -Sub_Reg_Path "WinRAR.ZIP" -Type "ZIP" -Key_Label "Extract ZIP (WinRAR) in Sandbox" 161 | Remove-RegItem -Sub_Reg_Path "Applications\7zFM.exe" -Type "7z" -Info_Type "7z" -Entry_Name "ZIP" -Key_Label "Extract 7z file in Sandbox" 162 | Remove-RegItem -Sub_Reg_Path "7-Zip.7z" -Type "7z" -Info_Type "7z" -Entry_Name "ZIP" -Key_Label "Extract 7z file in Sandbox" 163 | Remove-RegItem -Sub_Reg_Path "7-Zip.rar" -Type "7z" -Info_Type "7z" -Entry_Name "ZIP" -Key_Label "Extract RAR file in Sandbox" 164 | } 165 | 166 | if (Test-Path -Path $Run_in_Sandbox_Folder) { 167 | try { 168 | Remove-Item $Run_in_Sandbox_Folder -Recurse -Force 169 | Write-LogMessage -Message_Type "Success" -Message "Run-in-Sandbox has been removed" 170 | } catch { 171 | Write-LogMessage -Message_Type "ERROR" -Message "Run-in-Sandbox Folder couldnt be removed" 172 | Write-LogMessage -Message_Type "INFO" -Message "Please remove path `"$Run_in_Sandbox_Folder`" manually" 173 | } 174 | } 175 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7-zip.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7-zip.chm -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7-zip.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7-zip.dll -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7-zip32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7-zip32.dll -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7z.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7z.dll -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7z.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7z.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7z.sfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7z.sfx -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7zCon.sfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7zCon.sfx -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7zFM.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7zFM.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/7zG.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/7zG.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/History.txt: -------------------------------------------------------------------------------- 1 | HISTORY of the 7-Zip 2 | -------------------- 3 | 4 | 20.02 alpha 2020-08-08 5 | ------------------------- 6 | - The default number of LZMA2 chunks per solid block in 7z archive was increased to 64. 7 | It allows to increase the compression speed for big 7z archives, if there is a big number 8 | of CPU cores and threads. 9 | - The speed of PPMd compressing/decompressing was increased for 7z/ZIP/RAR archives. 10 | - The new -ssp switch. If the switch -ssp is specified, 7-Zip doesn't allow the system 11 | to modify "Last Access Time" property of source files for archiving and hashing operations. 12 | - Some bugs were fixed. 13 | - New localization: Swahili. 14 | 15 | 16 | 20.00 alpha 2020-02-06 17 | ------------------------- 18 | - 7-Zip now supports new optional match finders for LZMA/LZMA2 compression: bt5 and hc5, 19 | that can work faster than bt4 and hc4 match finders for the data with big redundancy. 20 | - The compression ratio was improved for Fast and Fastest compression levels with the 21 | following default settings: 22 | - Fastest level (-mx1) : hc5 match finder with 256 KB dictionary. 23 | - Fast level (-mx3) : hc5 match finder with 4 MB dictionary. 24 | - Minor speed optimizations in multithreaded LZMA/LZMA2 compression for Normal/Maximum/Ultra 25 | compression levels. 26 | - bzip2 decoding code was updated to support bzip2 archives, created by lbzip2 program. 27 | - Some bugs were fixed. 28 | - New localization: Turkmen. 29 | 30 | 31 | 19.02 alpha 2019-09-05 32 | ------------------------- 33 | - 7-Zip now can unpack files encoded with Base64 encoding (b64 filename extension). 34 | - 7-Zip now can use new x86/x64 hardware instructions for SHA-1 and SHA-256, supported 35 | by AMD Ryzen and latest Intel CPUs: Ice Lake and Goldmont. 36 | It increases 37 | - the speed of SHA-1/SHA-256 hash value calculation, 38 | - the speed of encryption/decryption in zip AES, 39 | - the speed of key derivation for encryption/decryption in 7z/zip/rar archives. 40 | - The speed of zip AES encryption and 7z/zip/rar AES decryption was increased with 41 | the following improvements: 42 | - 7-Zip now can use new x86/x64 VAES (AVX Vector AES) instructions, supported by 43 | Intel Ice Lake CPU. 44 | - The existing code of x86/x64 AES-NI was improved also. 45 | - There is 2% speed optimization in 7-Zip benchmark's decompression. 46 | - Some bugs were fixed. 47 | 48 | 49 | 19.00 2019-02-21 50 | ------------------------- 51 | - Encryption strength for 7z archives was increased: 52 | the size of random initialization vector was increased from 64-bit to 128-bit, 53 | and the pseudo-random number generator was improved. 54 | - Some bugs were fixed. 55 | 56 | 57 | 18.06 2018-12-30 58 | ------------------------- 59 | - The speed for LZMA/LZMA2 compressing was increased by 3-10%, 60 | and there are minor changes in compression ratio. 61 | - Some bugs were fixed. 62 | - The bug in 7-Zip 18.02-18.05 was fixed: there was memory leak in xz decoder. 63 | - 7-Zip 18.02-18.05 used only one CPU thread for bz2 archive creation. 64 | 65 | 66 | 18.05 2018-04-30 67 | ------------------------- 68 | - The speed for LZMA/LZMA2 compressing was increased 69 | by 8% for fastest/fast compression levels and 70 | by 3% for normal/maximum compression levels. 71 | - 7-Zip now shows Properties (Info) window and CRC/SHA results window 72 | as "list view" window instead of "message box" window. 73 | - Some improvements in zip, hfs and dmg code. 74 | - Previous versions of 7-Zip could work incorrectly in "Large memory pages" mode in 75 | Windows 10 because of some BUG with "Large Pages" in Windows 10. 76 | Now 7-Zip doesn't use "Large Pages" on Windows 10 up to revision 1709 (16299). 77 | - The vulnerability in RAR unpacking code was fixed (CVE-2018-10115). 78 | - Some bugs were fixed. 79 | 80 | 81 | 18.03 beta 2018-03-04 82 | ------------------------- 83 | - The speed for single-thread LZMA/LZMA2 decoding 84 | was increased by 30% in x64 version and by 3% in x86 version. 85 | - 7-Zip now can use multi-threading for 7z/LZMA2 decoding, 86 | if there are multiple independent data chunks in LZMA2 stream. 87 | - 7-Zip now can use multi-threading for xz decoding, 88 | if there are multiple blocks in xz stream. 89 | - New localization: Kabyle. 90 | - Some bugs were fixed. 91 | 92 | 93 | 18.01 2018-01-28 94 | ------------------------- 95 | - 7-Zip now can unpack DMG archives that use LZFSE compression method. 96 | - 7-Zip now doesn't allow update operation for archives that have read-only attribute. 97 | - The BUG was fixed: 98 | extracting from tar with -si switch didn't set timestamps for directories. 99 | - Some bugs were fixed. 100 | 101 | 102 | 18.00 beta 2018-01-10 103 | ------------------------- 104 | - 7-Zip now can unpack OBJ/COFF files. 105 | - new -sse switch to stop archive creating, if 7-Zip can't open some input file. 106 | - Some bugs were fixed. 107 | 108 | 109 | 17.01 beta 2017-08-28 110 | ------------------------- 111 | - Minor speed optimization for LZMA2 (xz and 7z) multi-threading compression. 112 | 7-Zip now uses additional memory buffers for multi-block LZMA2 compression. 113 | CPU utilization was slightly improved. 114 | - 7-zip now creates multi-block xz archives by default. Block size can be 115 | specified with -ms[Size]{m|g} switch. 116 | - xz decoder now can unpack random block from multi-block xz archives. 117 | 7-Zip File Manager now can open nested multi-block xz archives 118 | (for example, image.iso.xz) without full unpacking of xz archive. 119 | - 7-Zip now can create zip archives from stdin to stdout. 120 | - 7-Zip command line: @listfile now doesn't work after -- switch. 121 | Use -i@listfile before -- switch instead. 122 | - The BUGs were fixed: 123 | 7-Zip could add unrequired alternate file streams to WIM archives, 124 | for commands that contain filename wildcards and -sns switch. 125 | 7-Zip 17.00 beta crashed for commands that write anti-item to 7z archive. 126 | 7-Zip 17.00 beta ignored "Use large memory pages" option. 127 | 128 | 129 | 17.00 beta 2017-04-29 130 | ------------------------- 131 | - ZIP unpacking code was improved. 132 | - 7-Zip now reserves file space before writing to file (for extraction from archive). 133 | It can reduce file fragmentation. 134 | - Some bugs were fixed. 7-Zip could crash in some cases. 135 | - Internal changes in code. 136 | 137 | 138 | 16.04 2016-10-04 139 | ------------------------- 140 | - The bug was fixed: 7-Zip 16.03 exe installer under Vista didn't create 141 | links in Start / Programs menu. 142 | - Some bugs were fixed in RAR code. 143 | 144 | 145 | 16.03 2016-09-28 146 | ------------------------- 147 | - Installer and SFX modules now use some protection against DLL preloading attack. 148 | - Some bugs were fixed in 7z, NSIS, SquashFS, RAR5 and another code. 149 | 150 | 151 | 16.02 2016-05-21 152 | ------------------------- 153 | - 7-Zip now can extract multivolume ZIP archives (z01, z02, ... , zip). 154 | - Some bugs were fixed. 155 | 156 | 157 | 15.14 2015-12-31 158 | ------------------------- 159 | - 7-Zip File Manager: 160 | - The code for "Open file from archive" operation was improved. 161 | - The code for "Tools/Options" window was improved. 162 | - The BUG was fixed: there was incorrect mouse cursor capture for 163 | drag-and-drop operations from open archive to Explorer window. 164 | - Some bugs were fixed. 165 | - New localization: Yoruba. 166 | 167 | 168 | 15.12 2015-11-19 169 | ------------------------- 170 | - The release version. 171 | 172 | 173 | 15.11 beta 2015-11-14 174 | ------------------------- 175 | - Some bugs were fixed. 176 | 177 | 178 | 15.10 beta 2015-11-01 179 | ------------------------- 180 | - The BUG in 9.21 - 15.09 was fixed: 181 | 7-Zip could ignore some parameters, specified for archive creation operation 182 | for gzip and bzip2 formats in "Add to Archive" window and in command line 183 | version (-m switch). 184 | - Some bugs were fixed. 185 | 186 | 187 | 15.09 beta 2015-10-16 188 | ------------------------- 189 | - 7-Zip now can extract ext2 and multivolume VMDK images. 190 | - Some bugs were fixed. 191 | 192 | 193 | 15.08 beta 2015-10-01 194 | ------------------------- 195 | - 7-Zip now can extract ext3 and ext4 (Linux file system) images. 196 | - Some bugs were fixed. 197 | 198 | 199 | 15.07 beta 2015-09-17 200 | ------------------------- 201 | - 7-Zip now can extract GPT images and single file QCOW2, VMDK, VDI images. 202 | - 7-Zip now can extract solid WIM archives with LZMS compression. 203 | - Some bugs were fixed. 204 | 205 | 206 | 15.06 beta 2015-08-09 207 | ------------------------- 208 | - 7-Zip now can extract RAR5 archives. 209 | - 7-Zip now doesn't sort files by type while adding to solid 7z archive. 210 | - new -mqs switch to sort files by type while adding to solid 7z archive. 211 | - The BUG in 7-Zip File Manager was fixed: 212 | The "Move" operation to open 7z archive didn't delete empty files. 213 | - The BUG in 15.05 was fixed: 214 | console version added some text to the end of stdout stream, is -so switch was used. 215 | - The BUG in 9.30 - 15.05 was fixed: 216 | 7-Zip could not open multivolume sfx RAR archive. 217 | - Some bugs were fixed. 218 | 219 | 220 | 15.05 beta 2015-06-14 221 | ------------------------- 222 | - 7-Zip now uses new installer. 223 | - 7-Zip now can create 7z, xz and zip archives with 1536 MB dictionary for LZMA/LZMA2. 224 | - 7-Zip File Manager now can operate with alternate file streams at NTFS 225 | volumes via "File / Alternate Streams" menu command. 226 | - 7-Zip now can extract .zipx (WinZip) archives that use xz compression. 227 | - new optional "section size" parameter for BCJ2 filter for compression ratio improving. 228 | Example: -mf=BCJ2:d9M, if largest executable section in files is smaller than 9 MB. 229 | - Speed optimizations for BCJ2 filter and SHA-1 and SHA-256 calculation. 230 | - Console version now uses stderr stream for error messages. 231 | - Console version now shows names of processed files only in progress line by default. 232 | - new -bb[0-3] switch to set output log level. -bb1 shows names of processed files in log. 233 | - new -bs[o|e|p][0|1|2] switch to set stream for output messages; 234 | o: output, e: error, p: progress line; 0: disable, 1: stdout, 2: stderr. 235 | - new -bt switch to show execution time statistics. 236 | - new -myx[0-9] switch to set level of file analysis. 237 | - new -mmtf- switch to set single thread mode for filters. 238 | - The BUG was fixed: 239 | 7-Zip didn't restore NTFS permissions for folders during extracting from WIM archives. 240 | - The BUG was fixed: 241 | The command line version: if the command "rn" (Rename) was called with more 242 | than one pair of paths, 7-Zip used only first rename pair. 243 | - The BUG was fixed: 244 | 7-Zip crashed for ZIP/LZMA/AES/AES-NI. 245 | - The BUG in 15.01-15.02 was fixed: 246 | 7-Zip created incorrect ZIP archives, if ZipCrypto encryption was used. 247 | 7-Zip 9.20 can extract such incorrect ZIP archives. 248 | - Some bugs were fixed. 249 | 250 | 251 | 9.38 beta 2015-01-03 252 | ------------------------- 253 | - Some bugs were fixed. 254 | 255 | 256 | 9.36 beta 2014-12-26 257 | ------------------------- 258 | - The BUG in command line version was fixed: 259 | 7-Zip created temporary archive in current folder during update archive 260 | operation, if -w{Path} switch was not specified. 261 | The fixed 7-Zip creates temporary archive in folder that contains updated archive. 262 | - The BUG in 9.33-9.35 was fixed: 263 | 7-Zip silently ignored file reading errors during 7z or gz archive creation, 264 | and the created archive contained only part of file that was read before error. 265 | The fixed 7-Zip stops archive creation and it reports about error. 266 | - Some bugs were fixed. 267 | 268 | 269 | 9.35 beta 2014-12-07 270 | ------------------------- 271 | - The BUG was fixed: 272 | 7-Zip crashed during ZIP archive creation, if the number of CPU threads was more than 64. 273 | - The BUG in 9.31-9.34 was fixed: 274 | 7-Zip could not correctly extract ISO archives that are larger than 4 GiB. 275 | - The BUG in 9.33-9.34 was fixed: 276 | The option "Compress shared files" and -ssw switch didn't work. 277 | - The BUG in 9.26-9.34 was fixed: 278 | 7-Zip File Manager could crash for some archives open in "Flat View" mode. 279 | - Some bugs were fixed. 280 | 281 | 282 | 9.34 alpha 2014-06-22 283 | ------------------------- 284 | - The BUG in 9.33 was fixed: 285 | Command line version of 7-Zip could work incorrectly, if there is relative 286 | path in exclude filename optiton (-x) and absolute path as include filename. 287 | - The BUG in 9.26-9.33 was fixed: 288 | 7-Zip could not open some unusual 7z archives that were created by another 289 | software (not by 7-Zip). 290 | - The BUG in 9.31-9.33 was fixed: 291 | 7-Zip could crash with switch -tcab. 292 | 293 | 294 | 9.33 alpha 2014-06-15 295 | ------------------------- 296 | - 7-Zip now can show icons for 7-Zip items in Explorer's context menu. 297 | - "Add to archive" dialog box: 298 | - new options in "Path Mode" 299 | - new option "Delete files after compression" 300 | - new "NTFS" options for WIM and TAR formats: 301 | - Store symbolic links 302 | - Store hard links 303 | - Store alternate data streams 304 | - Store file security 305 | - "Extract" dialog box: 306 | - new optional field to set output folder name 307 | - new option "Eliminate duplication of root folder" 308 | - new option "Absolute pathnames" in "Path Mode". 309 | - new option "Restore file security" (that works for WIM archives only) 310 | - 7-Zip File Manager: 311 | - new "File / Link" dialog box in to create symbolic links and hard links. 312 | - Command line version: 313 | - new -spd switch to Disable wildcard matching for file names 314 | - new -spe switch to Eliminate duplication of root folder for extract archive command 315 | - new -snh switch to store hard links as links (WIM and TAR formats only) 316 | - new -snl switch to store symbolic links as links (WIM and TAR formats only) 317 | - NSIS support was improved. 318 | - The problem was fixed: 319 | The command "extract to \*" with multiple archives could use same 320 | output folder, if archives are placed inside PE (EXE) file. 321 | - The BUG of 9.31-9.32 was fixed: 322 | Command line version for test and extract commands returned the 323 | value 0 as exit code, if it couldn't open archive. 324 | - The BUG was fixed: 325 | 7-Zip could not create archives with anti-items for any archive type, 326 | except of 7z type 327 | - Some bugs were fixed. 328 | - New localization: Mongolian (script). 329 | 330 | 331 | 9.32 alpha 2013-12-01 332 | ------------------------- 333 | - 7-Zip now can create multivolume SFX archives in 7z format. 334 | Standalone sfx module now can unpack external 7z archive with name that is 335 | matched to name of sfx module. For example, sfx module renamed to archive.exe 336 | can unpack archive.7z or archive.7z.001 . 337 | - ZIP, NSIS, HFS, AR support was improved. 338 | - 7-Zip now supports files larger than 4 GiB in ISO archives. 339 | - Improved compression ratio in 7z format with maximum or ultra level for 340 | executable files (EXE and DLL) that are larger than 16 MB (improved BCJ2 filter). 341 | - Improved support for file pathnames longer than 260 characters. 342 | - CRC and SHA checksum calculation for files can be called via Explorer's context menu. 343 | - 7-Zip File Manager now also takes into account the numbers in filenames for sorting order. 344 | - 7-Zip File Manager now can use RAM buffers instead of temp files to open 345 | nested archives, if temp file is smaller than 1/4 of RAM size. 346 | - 7-Zip File Manager can open files in "Parser" mode via "Open Archive > #" context 347 | menu command. It shows the list of archives inside file. 348 | - Command line version: 349 | - new -t# switch to open file in "Parser" mode and show the list of archives inside file. 350 | - new -stx{Type} switch to exclude archive type from using. 351 | - -scs switch now supports UTF-16 encoding. 352 | - now it shows time and memory usage statistics at the end of execution. 353 | - The BUGs were fixed: 354 | - 7-Zip 9.30 and early versions created ZIP archives with minor errors 355 | in extra field of headers for directory items, if AES (WinZip-AES) encryption was used. 356 | - 7-Zip could work incorrectly in decompression of more than one 357 | multi-volume archive in one command. 358 | - 7-Zip 9.24 alpha - 9.30 alpha versions could not extract ZIP archives 359 | encrypted with PKWARE-AES method. 360 | - Minimum supported system now is Windows 2000. 7-Zip doesn't work on Windows 95/98/ME. 361 | - New localization: Irish. 362 | 363 | 364 | 9.30 alpha 2012-10-26 365 | ------------------------- 366 | - LZMA2 now is default compression method for .7z format. 367 | - 7-Zip now can update WIM archives. 368 | - 7-Zip File Manager now can move files to archives. 369 | - The default encoding for TAR format now is UTF-8. You can use -mcp=1 switch for OEM encoding. 370 | - Command line version: 371 | - new "rn" command to rename files in archive. 372 | - new -sdel switch to delete files after including to archive. 373 | - new -sns switch to store NTFS alternate streams (for WIM format only). 374 | - new -sni switch to store NT security information for files (for WIM format only). 375 | - new -stl switch to set archive timestamp from the most recently modified file. 376 | - Speed optimizations for opening big archives and big disk folders. 377 | - 7-Zip now writes special padding blocks to headers of 7z archives for 378 | faster archive opening. Note that 7-Zip 4.50 - 4.58 contain BUG, 379 | so these old versions can't correctly work with such new 7z archives. 380 | - DMG support was improved 381 | - Some bugs were fixed. 382 | - The BUG in 7-Zip 9.26 alpha - 9.29 alpha versions was fixed. 383 | These alpha versions could not open non-solid 7z archive, if 384 | some files were skipped during creation of that archive. 385 | That problem is also related to 7z archives created in solid mode, 386 | if each solid block contains no more than one file. 387 | Note: 7-Zip skips files that were open for writing by another 388 | application and shows warning in that case. 389 | - New localization: Aragonese. 390 | 391 | 392 | 9.25 alpha 2011-09-16 393 | ------------------------- 394 | - LZMA decompression speed was improved. 395 | - "compress and send to email" code was improved to support more email clients. 396 | - New command "h" to calculate hash values CRC-32, CRC-64, SHA-256 or SHA-1 for files on disk. 397 | - New -spf switch to store full file paths including drive letter to archive. 398 | If you use that switch with extract command, please check that file names in archive are correct. 399 | - Some bugs were fixed. 400 | 401 | 402 | 9.23 alpha 2011-06-07 403 | ------------------------- 404 | - The format of language files was changed. 405 | - Some bugs were fixed. 406 | - New localization: Karakalpak. 407 | 408 | 409 | 9.22 beta 2011-04-18 410 | ------------------------- 411 | 412 | - 7-Zip now uses progress indicator displayed on a taskbar button under Windows 7. 413 | - The BUG in 7-Zip 9.21 beta was fixed: 414 | 7-Zip could ignore some options when you created ZIP archives. 415 | For example, it could use ZipCrypto cipher instead of AES-256. 416 | 417 | 418 | 9.21 beta 2011-04-11 419 | ------------------------- 420 | - 7-Zip now can unpack UEFI BIOS files. 421 | - 64-bit version of 7-Zip now includes additional 32-bit shell extension DLL. 422 | So other 32-bit programs can call 64-bit 7-Zip via context menu. 423 | - Now it's possible to associate 7-Zip with file types without Administrator rights. 424 | - New -mf=FilterID switch to specify compression filter. Examples: 425 | 7z a -mf=bcj2 a.7z a.tar 426 | 7z a -mf=delta:4 a.7z a.wav 427 | 7z a -mf=bcj a.tar.xz a.tar 428 | - 32-bit 7-Zip running under 64-bit Windows now can use up to 4 GB of RAM. 429 | - Some bugs were fixed. 430 | - New localizations: Corsican, Kyrgyz, Ligurian. 431 | 432 | 433 | 9.20 2010-11-18 434 | ------------------------- 435 | - Some bugs were fixed. 436 | 437 | 438 | 9.19 beta 2010-11-11 439 | ------------------------- 440 | - The console version now doesn't show entered password. 441 | - Some bugs were fixed. 442 | 443 | 444 | 9.18 beta 2010-11-02 445 | ------------------------- 446 | - 7-Zip now can unpack SquashFS and CramFS filesystem images. 447 | - 7-Zip now can unpack some TAR and ISO archives with incorrect headers. 448 | - New small SFX module for installers (in Extra package). 449 | - Some bugs were fixed. 450 | 451 | 452 | 9.17 beta 2010-10-04 453 | ------------------------- 454 | - Disk fragmentation problem for ZIP archives created by 7-Zip was fixed. 455 | 456 | 457 | 9.16 beta 2010-09-08 458 | ------------------------- 459 | - 7-Zip now supports files that are larger than 8 GB in TAR archives. 460 | - NSIS support was improved. 461 | - Some bugs were fixed. 462 | - New localizations: Hindi, Gujarati, Sanskrit. 463 | 464 | 465 | 9.15 beta 2010-06-20 466 | ------------------------- 467 | - Some bugs were fixed. 468 | - New localization: Tatar. 469 | 470 | 471 | 9.14 beta 2010-06-04 472 | ------------------------- 473 | - WIM support was improved. 474 | 475 | 476 | 9.13 beta 2010-04-15 477 | ------------------------- 478 | - 7-Zip now stores NTFS file timestamps to ZIP archives. 479 | - New additional "Open archive >" item in context menu allows to select 480 | archive type for some files. 481 | - Some bugs were fixed. 482 | - New localization: Uyghur. 483 | 484 | 485 | 9.12 beta 2010-03-24 486 | ------------------------- 487 | - ZIP / PPMd compression ratio was improved in Maximum and Ultra modes. 488 | - The BUG in 7-Zip 9.* beta was fixed: LZMA2 codec didn't work, 489 | if more than 10 threads were used (or more than 20 threads in some modes). 490 | 491 | 492 | 9.11 beta 2010-03-15 493 | ------------------------- 494 | - 7-Zip now supports PPMd compression in ZIP archives. 495 | - Speed optimizations in PPMd codec. 496 | - The support for archives in installers was improved. 497 | - Some bugs were fixed. 498 | - New localization: Kazakh. 499 | 500 | 501 | 9.10 beta 2009-12-22 502 | ------------------------- 503 | - The BUG in 7-Zip 9.09 beta was fixed: 504 | 7-Zip created incorrect ZIP archives, if ZipCrypto encryption was used. 505 | 506 | 507 | 9.09 beta 2009-12-12 508 | ------------------------- 509 | - 7-Zip now can unpack Apple Partition Map (APM) disk images. 510 | - Speed optimizations in AES code for Intel's 32nm CPUs. 511 | - Speed optimizations in CRC calculation code for Intel's Atom CPUs. 512 | - Some bugs were fixed. 513 | 514 | 515 | 9.07 beta 2009-08-27 516 | ------------------------- 517 | - It's possible to specify Diff program in options (7-Zip File Manager). 518 | - Some bugs were fixed. 519 | 520 | 521 | 9.06 beta 2009-08-17 522 | ------------------------- 523 | - 7-Zip now can unpack MSLZ archives. 524 | - Partial parsing for EXE resources, SWF and FLV. 525 | - Some bugs were fixed. 526 | 527 | 528 | 9.04 beta 2009-05-30 529 | ------------------------- 530 | - 7-Zip now can update solid .7z archives. 531 | - 7-Zip now supports LZMA2 compression method. 532 | - 7-Zip now supports XZ archives. 533 | - 7-Zip now can unpack NTFS, FAT, VHD and MBR archives. 534 | - 7-Zip now can unpack GZip, BZip2, LZMA, XZ and TAR archives from stdin. 535 | - 7-Zip now can open/copy/compress disk images (like \\.\c:) from \\.\ folder. 536 | - 7-Zip File Manager now doesn't use temp files to open nested archives 537 | stored without compression. 538 | - New -scrc switch to calculate total CRC-32 during extracting / testing. 539 | - New -scc{WIN|DOS|UTF-8} switch to specify charset for console input/output (default = DOS). 540 | - Some bugs were fixed. 541 | 542 | 543 | 4.65 2009-02-03 544 | ------------------------- 545 | - 7-Zip File Manager now can calculate SHA-256 checksum. 546 | - Some bugs were fixed. 547 | 548 | 549 | 4.64 2009-01-03 550 | ------------------------- 551 | - The bug in 7-Zip 4.63 was fixed: 7-Zip could not decrypt .ZIP archives 552 | encrypted with WinZip-AES method. 553 | 554 | 555 | 4.63 2008-12-31 556 | ------------------------- 557 | - 7-Zip now can unpack ZIP archives encrypted with PKWARE-AES. 558 | - Some bugs were fixed. 559 | 560 | 561 | 4.62 2008-12-02 562 | ------------------------- 563 | - Some bugs were fixed. 564 | 565 | 566 | 4.61 beta 2008-11-23 567 | ------------------------- 568 | - 7-Zip now supports LZMA compression for .ZIP archives. 569 | - Some bugs were fixed. 570 | - New localization: Sinhala. 571 | 572 | 573 | 4.60 beta 2008-08-19 574 | ------------------------- 575 | - Some bugs were fixed. 576 | 577 | 578 | 4.59 beta 2008-08-13 579 | ------------------------- 580 | - 7-Zip now can unpack UDF, XAR and DMG/HFS archives. 581 | - 7-Zip File Manager now keeps encryption when you edit encrypted file inside archive. 582 | - 7-Zip File Manager now allows to change current folder from the address bar drop-down list. 583 | - It's allowed to use -t switch for "list" and "extract" commands. 584 | - Some bugs were fixed. 585 | - New localizations: Icelandic, Kurdish Sorani. 586 | 587 | 588 | 4.58 beta 2008-05-05 589 | ------------------------- 590 | - Some speed optimizations. 591 | - 7-Zip now can unpack .lzma archives. 592 | - Unicode (UTF-8) support for filenames in .ZIP archives. Now there are 3 modes: 593 | 1) Default mode: 7-Zip uses UTF-8, if the local code page doesn't contain required symbols. 594 | 2) -mcu switch: 7-Zip uses UTF-8, if there are non-ASCII symbols. 595 | 3) -mcl switch: 7-Zip uses local code page. 596 | - Now it's possible to store file creation time in 7z and ZIP archives (-mtc switch). 597 | - 7-Zip now can unpack multivolume RAR archives created with 598 | "old style volume names" scheme and names *.001, *.002, ... 599 | - Now it's possible to use -mSW- and -mSW+ switches instead of -mSW=off and -mSW=on 600 | - Some bugs were fixed. 601 | - New localizations: Punjabi (Indian), Pashto. 602 | 603 | 604 | 4.57 2007-12-06 605 | ------------------------- 606 | - The BUG in command line version was fixed: -up3 switch 607 | could work incorrectly. 608 | 609 | 610 | 4.56 beta 2007-10-24 611 | ------------------------- 612 | - Some bugs were fixed. 613 | 614 | 615 | 4.55 beta 2007-09-05 616 | ------------------------- 617 | - Some bugs were fixed. 618 | 619 | 620 | 4.54 beta 2007-09-04 621 | ------------------------- 622 | - Decompression speed was increased. 623 | 624 | 625 | 4.53 beta 2007-08-27 626 | ------------------------- 627 | - "Test" and "Info" buttons now work for open archives. 628 | - The bug in 7-Zip 4.48 - 4.52 beta was fixed: 629 | 7-Zip could create .ZIP archives with broken files. 630 | - Some bugs were fixed. 631 | 632 | 633 | 4.52 beta 2007-08-03 634 | ------------------------- 635 | - 7-Zip now can unpack Compound files (msi, doc, ...). 636 | - Some bugs were fixed. 637 | 638 | 639 | 4.51 beta 2007-07-25 640 | ------------------------- 641 | - Bug was fixed: 7-Zip 4.50 beta could not open some .7z archives. 642 | 643 | 644 | 4.50 beta 2007-07-24 645 | ------------------------- 646 | - New switch for command line version: 647 | -ssc[-] enables/disables case-sensitive mode for file names. 648 | - Speed optimizations for AES encryption. 649 | - Some bugs were fixed. 650 | 651 | 652 | 4.49 beta 2007-07-11 653 | ------------------------- 654 | - 7-Zip now can unpack WIM archives. 655 | - 7-Zip now replaces incorrect characters in filenames during extracting. 656 | 657 | 658 | 4.48 beta 2007-06-26 659 | ------------------------- 660 | - Encryption strength for .7z format was increased. 661 | Now it uses random initialization vectors. 662 | - Some bugs were fixed. 663 | 664 | 665 | 4.47 beta 2007-05-27 666 | ------------------------- 667 | - Bugs of 7-Zip 4.46 beta were fixed: BZip2 could work incorrectly. 668 | 669 | 670 | 4.46 beta 2007-05-25 671 | ------------------------- 672 | - New fast compression mode for Deflate method in Zip and GZip. 673 | - New "Compress shared files" option in GUI and -ssw switch. 674 | - Some bugs were fixed. 675 | - New localization: Norwegian Nynorsk. 676 | 677 | 678 | 4.45 beta 2007-04-17 679 | ------------------------- 680 | - Now it's possible to specify the size of solid block and the number 681 | of CPU threads in "Add to archive" dialog box. 682 | - Default dictionary size was increased: Normal: 16 MB, Max: 32 MB. 683 | - Speed optimizations. 684 | - Benchmark was improved (new "b" command in command line version). 685 | - The number of DLL files was reduced. 686 | - Now it's possible to associate 7-zip with combined types like .tbz2 687 | - switch -mhcf=off is not supported now. 688 | - If -t{Type} switch is not specified, 7-Zip now uses extension of archive to 689 | detect the type of archive. 690 | - Some bugs were fixed. 691 | - New localization: Welsh. 692 | 693 | 694 | 4.44 beta 2007-01-20 695 | ------------------------- 696 | - Speed optimizations for LZMA, Deflate, BZip2 and unRAR. 697 | - 7-Zip now supports file pathnames longer than 260 characters. 698 | - Some bugs were fixed. 699 | - New localizations: Bangla, Bashkir, Nepali. 700 | 701 | 702 | 4.43 beta 2006-09-15 703 | ------------------------- 704 | - 7-Zip now can use multi-threading mode for compressing to .ZIP archives. 705 | - ZIP format supporting was improved. 706 | - 7-Zip now supports WinZip-compatible AES-256 encryption for .ZIP archives. 707 | - New context menu items for .ZIP archives creating. 708 | - 7-Zip now uses order list (list of extensions) for files sorting for compressing 709 | to .7z archives. It can slightly increase compression ratio in some cases. 710 | - 7-Zip now restores modification time of folders during .7z archives extracting. 711 | - Some bugs were fixed. 712 | - New localizations: Armenian, Marathi. 713 | 714 | 715 | 716 | 4.42 2006-05-14 717 | ------------------------- 718 | - Compressing speed and Memory requirements were increased. 719 | Default dictionary size was increased: Fastest: 64 KB, Fast: 1 MB, 720 | Normal: 4 MB, Max: 16 MB, Ultra: 64 MB. 721 | - BZip2 compressing / decompressing now can work in multi-threading mode 722 | - Multi-threading mode now is default for multi-processor systems 723 | - 64-bit version now supports 1 GB dictionary 724 | - 7z/LZMA now can use only these match finders: HC4, BT2, BT3, BT4 725 | - Compression ratio in Zip/GZip/Deflate in Ultra mode was increased 726 | - 7-Zip now can unpack ISO archives and some installers created by NSIS 727 | - Optional "Flat View" mode in 7-Zip File Manager 728 | - 7-Zip File Manager now can calculate CRC checksums for files 729 | - -x switch with relative paths now affects files specified with absolute paths 730 | - New switch for 7za.exe (console version): -slt. 731 | "l" (list) command with -slt shows technical information for archive. 732 | - New switch: -scs{WIN|DOS|UTF-8} specifies charset for list files. 733 | Default charset for list files is UTF-8 now. 734 | - Some bugs were fixed 735 | - New localizations: Albanian, Kurdish 736 | 737 | 738 | 4.32 2005-12-09 739 | ------------------------- 740 | - Bug was fixed: 7-Zip 4.31 didn't work in Windows 95 741 | 742 | 743 | 4.31 2005-12-04 744 | ------------------------- 745 | - Small changes 746 | - New localization: Basque 747 | 748 | 749 | 4.30 beta 2005-11-18 750 | ------------------------- 751 | - Files 7zFMn.exe, 7zGn.exe, 7-zipn, 7za.exe, 7zC.sfx were removed from 7-zip package 752 | - 7-Zip now uses uncompressed SFX: 7z.sfx 753 | - Sfx modules 7z.sfx and 7zCon.sfx now use msvcrt.dll 754 | - Speed optimizations in LZMA maximum/ultra compressing. 755 | - LZMA now supports word size up to 273 756 | - 7-Zip now reduces dictionary size for LZMA, if you compress files 757 | smaller than specified dictionary size. 758 | - 7-Zip now can use large memory pages: 759 | GUI: 7-Zip File Manager / Options / Settings / Use large memory pages. 760 | Command line version: -slp switch. 761 | This feature allows to increase speed of compressing. 762 | But 7-Zip can make some pause at starting of compressing for allocating large pages. 763 | Also Task Manager doesn't show real memory usage of program, if 7-Zip uses large pages. 764 | This feature works only on Windows 2003 / XP x64 / Vista. 765 | Also you must have administrator's rights for your system. 766 | Recommended size of RAM: 1 GB or more. 767 | To install this feature you must run 7-Zip File Manager at least once, 768 | close it and reboot system. 769 | - Some bugs were fixed 770 | 771 | 772 | 4.29 beta 2005-09-28 773 | ------------------------- 774 | - Bug was fixed: 7-Zip 4.28 beta worked incorrectly in Windows 95/98/Me 775 | 776 | 777 | 4.28 beta 2005-09-27 778 | ------------------------- 779 | - Bug was fixed: 7-Zip 4.27 beta created incorrect multivolume archives. 780 | - "Duplicate filename" collision problem between names with ligatures was fixed. 781 | 782 | 783 | 4.27 beta 2005-09-21 784 | ------------------------- 785 | - 7-Zip can unpack CHM/HXS (MS HTML HELP) archives 786 | - 7-Zip can unpack multivolume CAB archives 787 | - Now 7-Zip deletes files to the Recycle Bin by default. 788 | Shift+Delete deletes files permanently. 789 | - Some bugs were fixed 790 | - New localization: Tatarish 791 | 792 | 793 | 4.26 beta 2005-08-05 794 | ------------------------- 795 | - LZH format support (extracting only) 796 | - Some bugs were fixed 797 | - New localization: Ido 798 | 799 | 800 | 4.25 beta 2005-07-31 801 | ------------------------- 802 | - 7-Zip now doesn't interrupt the compressing when it can not 803 | find specified file as in version 4.24 beta. It just shows warning. 804 | - 7-Zip now supports standard selection mode in the file list 805 | - Some bugs were fixed 806 | 807 | 808 | 4.24 beta 2005-07-06 809 | ------------------------- 810 | - 7-Zip now supports right-click Drag and Drop in Explorer 811 | - Command line version now supports short file names (like FILENA~1.TXT) 812 | - If there are no wildcard names and there is no -r switch in command line, 813 | 7-Zip now checks that specified files exist on disk before compressing. 814 | - Some bugs were fixed 815 | 816 | 817 | 4.23 2005-06-29 818 | ------------------------- 819 | - Drag and Drop support 820 | - 7-Zip File Manager now can copy files from one archive to another 821 | - Some bugs were fixed 822 | - New localizations: Extremaduran, Malay 823 | 824 | 825 | 4.20 2005-05-30 826 | ------------------------- 827 | - No changes 828 | 829 | 830 | 4.19 beta 2005-05-21 831 | ------------------------- 832 | - BZip2 code was rewritten. Now it supports 3 modes: Normal, Maximum and 833 | Ultra. In Normal mode it compresses almost as original BZip2 compressor. 834 | Compression ratio in Maximum and Ultra modes is 1-3% better for some files, 835 | but Maximum Mode is about 3 times slower and Ultra Mode is about 8 times 836 | slower than Normal mode. 837 | - Console version now prints all messages to stdout by default, 838 | and if -so switch is specified, 7-Zip prints messages to stderr. 839 | - Some bugs were fixed 840 | - New localizations: Azeri, Georgian 841 | 842 | 843 | 4.18 beta 2005-04-19 844 | ------------------------- 845 | - Bug in v4.17 beta was fixed: 7-Zip File Manager could crash 846 | after some operations with archives 847 | 848 | 849 | 4.17 beta 2005-04-18 850 | ------------------------- 851 | - To increase protection from viruses, 7-Zip now does not open 852 | files with more than 4 continuous spaces in the name. 853 | And 7-Zip changes such long spaces in name to " ... " in the file list. 854 | - Code size optimization 855 | - Some files were moved from main package to extra package: 856 | - Plugin for FAR Manager 857 | - SFX modules for installers (7zS.sfx and 7zSD.sfx) 858 | - New localizations: Asturian, Indonesian 859 | 860 | 861 | 4.16 beta 2005-03-29 862 | ------------------------- 863 | - Speed optimization (5%) for 7z / LZMA 864 | - 7za.exe now supports .Z archives 865 | - -r- switch in command line now is default for all commands 866 | - Some bugs were fixed 867 | - New localization: Uzbek 868 | 869 | 870 | 4.15 beta 2005-01-25 871 | ------------------------- 872 | - Z format supporting (extracting only) 873 | - 7-Zip now can extract ZIP archives compressed with "Shrink" method 874 | - 7-Zip now doesn't interrupt the compressing when it can not open file. 875 | 7-Zip just skips that file and shows warning. 876 | - Some bugs were fixed 877 | - New localization: Frisian 878 | 879 | 880 | 4.14 beta 2005-01-11 881 | ------------------------- 882 | - 7-Zip installer was created with NSIS. 883 | Now it installs 7-Zip for all users (under Windows 2000/XP). 884 | - Now 7-Zip can create multivolume archives 885 | (switch -v for command line) 886 | - Some bugs were fixed 887 | - New localizations: Breton, Farsi 888 | 889 | 890 | 4.13 beta 2004-12-14 891 | ------------------------- 892 | - Switch "--" stops switches parsing 893 | - Some bugs were fixed 894 | 895 | 896 | 4.12 beta 2004-11-18 897 | ------------------------- 898 | - Bug in v4.11 beta was fixed: 899 | 7-Zip created incorrect ZIP archives if file size was 900 | from 3.75 GB to 4 GB. 901 | 902 | 903 | 4.11 beta 2004-11-16 904 | ------------------------- 905 | - 7-Zip now shows file names during compressing/decompressing 906 | - 7-Zip now supports Zip64 extension of ZIP format. So now it's 907 | possible to compress files bigger than 4 GB to ZIP archives. 908 | - Some bugs were fixed 909 | - New localization: Galician 910 | 911 | 912 | 4.10 beta 2004-10-21 913 | ------------------------- 914 | - Bugs in v4.0* were fixed: 915 | - Some commands in command line with "-r" switch worked incorrectly, 916 | so 7-zip could skip some files during compressing 917 | - Some other bugs were fixed 918 | - Small internal changes 919 | 920 | 921 | 4.09 beta 2004-10-05 922 | ------------------------- 923 | - Bugs in v4.0* were fixed: 924 | - Renaming inside archives didn't work or worked incorrectly 925 | - GUI SFX didn't show extracting dialog at start 926 | - Small fixes in 7-Zip GUI (7zG.exe) 927 | 928 | 929 | 4.08 beta 2004-10-04 930 | ------------------------- 931 | - Bug in installer for v4.07 was fixed: when rebooting 932 | is required, it rebooted without asking user 933 | - Small fixes in 7-Zip GUI (7zG.exe) 934 | 935 | 936 | 4.07 beta 2004-10-03 937 | ------------------------- 938 | - Big amount of code was changed in this beta version. 939 | So don't use it for important data compressing. 940 | And test archive after compressing. 941 | 942 | - Unified command line interface to GUI and console versions 943 | - 7-Zip now can extract or test several archives in one command 944 | - 7-Zip now doesn't interrupt the compressing when file is locked by 945 | other application. 7-Zip just skips that file and shows warning. 946 | Note: previous versions of 7-Zip had bug, so they can not unpack 947 | non-solid and some solid 7z archives with such skipped files. 948 | - Command line interface was changed: 949 | - now it's possible to use absolute pathnames 950 | - syntax simplification: 951 | was: 7z a a Folder1\* Folder2\* -r 952 | now: 7z a a Folder1 Folder2 953 | - now it's possible to use complex wildcard commands, like *\*111*\* 954 | - More smart detection of archive type for files with unusual 955 | file name extensions 956 | - Supporting for RAR archives with encrypted headers 957 | - CPIO format supporting was improved 958 | - For GZip and BZip2 formats you can: 959 | - Compress from stdin (-si switch) 960 | - Compress to stdout (-so switch) 961 | - Extract to stdout (-so switch) 962 | - 7-Zip File Manager: 963 | - Split and Combine commands 964 | - new list view options: Full row select, Show grid lines 965 | - Internal reconstruction 966 | - Some bugs were fixed 967 | - New localizations: Friulian, Macedonian, Mongolian, Tamil, Thai 968 | 969 | 970 | 3.13 2003-12-11 971 | ------------------------- 972 | - Some small bugs were fixed 973 | 974 | 975 | 3.12 2003-12-10 976 | ------------------------- 977 | - Now you can select compression method, dictionary size 978 | and word size in "Add to archive" dialog box. Also it 979 | shows memory usage. 980 | - 7-Zip File Manager now contains toolbars. 981 | - New "Benchmark" command in 7-Zip File Manager. 982 | It measures compressing and decompressing speeds and 983 | shows rating values. 984 | - Some bugs were fixed. 985 | 986 | 987 | 3.11 2003-10-06 988 | ------------------------- 989 | - 7-zip now use limitations for solid block size 990 | for increasing the speed of random file decompressing: 991 | - in Store mode: 0 B 992 | - in Fast mode: 16 MB 993 | - in Normal mode: 256 MB 994 | - in Maximum mode: 1 GB 995 | - in Ultra mode: 4 GB 996 | - 7z.exe, 7za.exe and SFX modules now support Unicode 997 | file names under Windows NT/2000/XP/2003. 998 | 7zn.exe and 7zan.exe were removed from package. 999 | - Some bugs were fixed 1000 | - New localization: Afrikaans 1001 | 1002 | 1003 | 3.10 2003-09-27 1004 | ------------------------- 1005 | - Drag-and-Drop from external application 1006 | - GUI version (7zG.exe) can compress files with absolute paths 1007 | - Compression dialog doesn't suggest bzip2 and gzip2 types when 1008 | there are more than one selected file 1009 | - Optional auto renaming for existing files during extraction 1010 | in command line version (-aot switch). 1011 | - Some bugs were fixed 1012 | 1013 | 1014 | 3.09.02 2003-09-20 1015 | ------------------------- 1016 | - Optional limitation for solid block size for increasing 1017 | the speed of random file decompressing (-ms switch) 1018 | 1019 | 1020 | 3.09.01 beta 2003-09-06 1021 | ------------------------- 1022 | - Automatic compression filter for executable files: 1023 | dll, exe, ocx, sfx, sys, (-mf switch) 1024 | - Compression levels in 7z now are: 1025 | - Fast: 32 KB dictionary, BCJ filter 1026 | - Normal: 2 MB dictionary, BCJ filter 1027 | - Maximum: 8 MB dictionary, BCJ filter, max settings 1028 | - Ultra: 32 MB dictionary, BCJ2 filter, max settings 1029 | - Updating solid 7z archives now is supported, if it doesn't 1030 | require repacking solid blocks 1031 | - -mhcf switch for 7z format now is default 1032 | - Some bugs were fixed 1033 | 1034 | 1035 | 3.08.04 beta 2003-08-24 1036 | ------------------------- 1037 | - Favorites menu in 7-Zip File Manager 1038 | - Some bugs were fixed 1039 | 1040 | 1041 | 3.08.03 beta 2003-08-21 1042 | ------------------------- 1043 | - Automatic adding of extension to archive name in Compress Dialog 1044 | - Some bugs in previous 3.08.* versions were fixed: 1045 | - Storing columns width inside archives in File Manager 1046 | - Opening archive inside archive 1047 | - Quotes in list files in console version 1048 | 1049 | 1050 | 3.08.02 beta 2003-08-20 1051 | ------------------------- 1052 | - Some bugs were fixed 1053 | 1054 | 1055 | 3.08 beta 2003-08-19 1056 | ------------------------- 1057 | - Compress dialog: 1058 | - Supporting fast compressing mode (-mx=1 switch) 1059 | - Multi-threading option for Multi-Processor systems 1060 | or Pentium 4 with Hyper-Threading 1061 | - Encrypt file names option 1062 | - New context menu items: 1063 | - Extract here 1064 | - Extract to 1065 | - Compress and email 1066 | - Internal reconstruction, registry using was reduced 1067 | - New localization: Esperanto 1068 | 1069 | 1070 | 2.30 Beta 32 2003-05-15 1071 | ------------------------- 1072 | - New features in compressing / decompressing window. 1073 | - "Show password" option. 1074 | - Some other small changes. 1075 | - New localization: Valencian. 1076 | 1077 | 1078 | 2.30 Beta 31 2003-04-29 1079 | ------------------------- 1080 | - Some bugs were fixed. 1081 | 1082 | 1083 | 2.30 Beta 30 2003-04-19 1084 | ------------------------- 1085 | - 7-Zip File Manager: 1086 | - Showing .. item. 1087 | - 1/2 Panels mode switching (F9). 1088 | - Supporting Bzip2 compression in ZIP archives. 1089 | - Some bugs were fixed. 1090 | - Some optimization recompiling for reducing code size. 1091 | 1092 | 1093 | 2.30 Beta 29 2003-04-07 1094 | ------------------------- 1095 | - 7-Zip File Manager: 1096 | - "7-Zip" and "System" submenus in "Files" menu. 1097 | - Path history and "Browse" button in "Copy" dialog. 1098 | - RAR supporting was improved. 1099 | - Some bugs were fixed. 1100 | - Small changes in LZMA code. 1101 | - New localizations: Hebrew, Vietnamese. 1102 | 1103 | 1104 | 2.30 Beta 28 2003-02-16 1105 | ------------------------- 1106 | - Some bugs were fixed: 1107 | - Updating 7z archives that are larger than 4 GB. 1108 | - Using anti-items in 7z format. 1109 | - Compressing empty files with password to zip format. 1110 | - In max mode 7z now uses 8 MB dictionary instead of 4 MB. 1111 | - 7-Zip File Manager: 1112 | - Supporting file comments: Ctrl-Z. 1113 | - New key alias for folder bookmarks: [Shift]+Alt+Number. 1114 | 1115 | 1116 | 2.30 Beta 27 2003-01-24 1117 | ------------------------- 1118 | - Two BUGs in two previous beta versions (Beta 25 and Beta 26) 1119 | were fixed: 1120 | 1. Incorrect compressing to non-solid 7z archive 1121 | when files have some very big sizes: 1122 | 4 GB, 8 GB, 12 GB, 16 GB, ... 1123 | 2. Incorrect percent showing in 7z compressing 1124 | when files are bigger than 4 GB. 1125 | - Supporting multivolume RAR and SPLIT archives. 1126 | - Supporting DEB archives. 1127 | - Supporting old version of CPIO format. 1128 | - Some bugs were fixed. 1129 | - New localizations: Korean, Swedish. 1130 | 1131 | 1132 | 2.30 Beta 26 2003-01-12 1133 | ------------------------- 1134 | - Supporting Deflate64 method in Zip archives. 1135 | - Supporting Rar 1.50 archives. 1136 | - Some bugs were fixed. 1137 | 1138 | 1139 | 2.30 Beta 25 2003-01-02 1140 | ------------------------- 1141 | - Encryption feature for 7z format (AES-256). 1142 | - New optional archive header compressing mode (-mhcf). 1143 | - Archive headers now always are compressed with LZMA method. 1144 | - Updating non-solid 7z archives without -ms=off now is allowed. 1145 | - Folder creating and item renaming inside archive now is supported. 1146 | - Supporting encrypted Rar3 archives. 1147 | - Supporting Unicode names in Rar3 archives. 1148 | - Some bugs were fixed. 1149 | - New localizations: Lithuanian, Voro. 1150 | 1151 | 1152 | 2.30 Beta 24 2002-11-01 1153 | ------------------------- 1154 | - Some internal reconstructions. 1155 | - -m switch syntax was slightly changed. 1156 | - Some bugs were fixed. 1157 | - New localizations: Catalan, Norwegian, Romanian. 1158 | 1159 | 1160 | 2.30 Beta 23 2002-09-07 1161 | ------------------------- 1162 | - Encryption feature for zip format. 1163 | - Percent indicating for some operations. 1164 | - Some bugs were fixed. 1165 | 1166 | 1167 | 2.30 Beta 22 2002-08-31 1168 | ------------------------- 1169 | - New program: 7-Zip File Manager. 1170 | - Command line version now doesn't allow absolute paths 1171 | for compressing files. 1172 | - New localizations: Belarusian, Greek. 1173 | - Bug in FAR plugin was fixed: 1174 | Incorrect updating when archive has no explicit 1175 | directory items for file items. 1176 | - Some bugs were fixed. 1177 | 1178 | 1179 | 2.30 Beta 21 2002-07-08 1180 | ------------------------- 1181 | - RAM requirements for LZMA (7z) compression were reduced. 1182 | - Small bug in FAR plugin was fixed. 1183 | 1184 | 1185 | 2.30 Beta 20 2002-07-01 1186 | ------------------------- 1187 | - RAM requirements for LZMA (7z) decompression were reduced. 1188 | - New localization: Turkish. 1189 | - Some bugs were fixed. 1190 | 1191 | 1192 | 2.30 Beta 19 2002-04-11 1193 | ------------------------- 1194 | - Supporting RAR 3.0 archives. 1195 | - New localizations: Danish, Ukrainian. 1196 | 1197 | 1198 | 2.30 Beta 18 2002-03-25 1199 | ------------------------- 1200 | - Compressing speed in 7z format was slightly increased. 1201 | - New localizations: Estonian, Finnish. 1202 | - Some bugs were fixed. 1203 | 1204 | 1205 | 2.30 Beta 17 2002-03-03 1206 | ------------------------- 1207 | - Supporting ARJ archives. 1208 | - New localization: Chinese Simplified. 1209 | 1210 | 1211 | 2.30 Beta 16 2002-02-24 1212 | ------------------------- 1213 | - Supporting RPM and CPIO archives. 1214 | - New fast compression mode for LZMA: -m0a=0. 1215 | - New match finders for LZMA: bt4b, hc3, hc4. 1216 | - Some bugs were fixed. 1217 | 1218 | 1219 | 2.30 Beta 15 2002-02-17 1220 | ------------------------- 1221 | - Compression ratio in 7z was slightly improved. 1222 | - New localization: Dutch. 1223 | 1224 | 1225 | 2.30 Beta 14 2002-02-10 1226 | ------------------------- 1227 | - Speed optimization for multiprocessor computers (-mmt switch). 1228 | - New localizations: Czech, Japanese, Polish. 1229 | - Some bugs were fixed. 1230 | 1231 | 1232 | 2.30 Beta 13 2002-01-31 1233 | ------------------------- 1234 | - New SFX module for installers. 1235 | - New match finder for LZMA: bt3. 1236 | - New localizations: Portuguese, Portuguese Brazil, Serbo-Croatian. 1237 | - Some bugs were fixed. 1238 | 1239 | 1240 | 2.30 Beta 12 2002-01-16 1241 | ------------------------- 1242 | - Bug was fixed: memory leak in Beta 11. 1243 | - New localization: Hungarian. 1244 | 1245 | 1246 | 2.30 Beta 11 2002-01-15 1247 | ------------------------- 1248 | - Archive testing feature for GUI version. 1249 | - Now 7-Zip can use more than 256 MB of RAM in all Windows versions. 1250 | - New localizations: Bulgarian, Chinese Traditional, Latvian, Slovak. 1251 | - Some bugs were fixed. 1252 | 1253 | 1254 | 2.30 Beta 10 2002-01-11 1255 | ------------------------- 1256 | - Bugs were fixed: 1257 | - Updating 7z archives in Beta 8 and 9 didn't work. 1258 | - Unicode version in Beta 9 didn't work in Windows NT4. 1259 | - Some other bugs were fixed. 1260 | - New localizations: Arabic, French, Italian, Slovenian, Spanish. 1261 | 1262 | 1263 | 2.30 Beta 9 2002-01-08 1264 | ------------------------- 1265 | - Program localization: English, German, Russian. 1266 | - Additional optimized versions of programs 1267 | for Windows NT4/2000/XP. 1268 | - Two new match finders for LZMA: pat3h and pat4h. 1269 | - Some bugs were fixed. 1270 | 1271 | 1272 | 2.30 Beta 8 2001-12-21 1273 | ------------------------- 1274 | - 7-Zip now supports some zip archives that were not 1275 | supported by previous versions. 1276 | - 7-Zip now supports new state (-uw switch) for cases 1277 | when 7-Zip can not detect whether file is newer or the same. 1278 | - Supporting anti-items in 7z format for incremental 1279 | update (-u with action #3). 1280 | - Some bugs were fixed. 1281 | 1282 | 1283 | 2.30 Beta 7 2001-11-04 1284 | ------------------------- 1285 | - BCJ2: new converter for x86 code. 1286 | - Supporting tar archives with very long file names 1287 | (GNU extension to 'tar' format). 1288 | - Supporting multistream coders in 7z (-mb switch). 1289 | - More compressing parameters for zip and gzip 1290 | in console version (-m switch). 1291 | - Solid compressing option in Windows version. 1292 | - Compressing parameters option in Windows version. 1293 | - Auto renaming existing files feature for 1294 | extracting files. 1295 | - Overwrite mode switch for extracting (-ao). 1296 | - Some bugs were fixed. 1297 | 1298 | 1299 | 2.30 Beta 6 2001-10-13 1300 | ------------------------- 1301 | - Supporting 7z format in MultiArc plugin for FAR Manager. 1302 | - Some bugs were fixed. 1303 | 1304 | 1305 | 2.30 Beta 5 2001-10-02 1306 | ------------------------- 1307 | - Creating SFX archives from explorer. 1308 | - 7zWin.sfx: Windows version of SFX module. 1309 | - Auto adding .exe extension to SFX archive name. 1310 | - 7za.exe now supports 7z, bzip2, gzip, tar, zip. 1311 | - Some bugs were fixed. 1312 | 1313 | 1314 | 2.30 Beta 4 2001-09-15 1315 | ------------------------- 1316 | - Self extract capability for 7z format. 1317 | - 7z archive format is default for 7z.exe and 7za.exe. 1318 | - 7z in default mode now uses bt234 match finder 1319 | and solid compression. 1320 | - 7z in maximum mode (-mx) now uses 4MB dictionary. 1321 | 1322 | 1323 | 2.30 Beta 3 2001-09-10 1324 | ------------------------- 1325 | - Bug was fixed: decompressing .7z solid archives 1326 | containing empty files. 1327 | - new 7za.exe: standalone command line version 1328 | (only for 7z format). 1329 | - Speed of compressing to Deflate format (zip, gzip) 1330 | was slightly increased. 1331 | 1332 | 1333 | 2.30 Beta 2 2001-08-30 1334 | ------------------------- 1335 | - Supporting the new 7z format with high compression ratio. 1336 | - -bd (Disable percentage indicator) switch in 1337 | console version. 1338 | - Bug in console version was fixed: 1339 | previous versions incorrectly execute compression 1340 | commands with non-recursive wildcards in combination 1341 | with subfolders. 1342 | - Some other bugs were fixed. 1343 | 1344 | 1345 | 2.30 Beta 1 2001-05-07 1346 | ------------------------- 1347 | - Speed of reading of archive contents was increased. 1348 | - Bug was fixed: incorrect showing file names with 1349 | national charsets in some zip archives. 1350 | - Now it is possible to compress files larger than 4GB 1351 | to GZip archives. 1352 | 1353 | 1354 | 2.24 2001-03-21 1355 | ------------------------- 1356 | - Bugs in GZip and Cab decoders were fixed. 1357 | 1358 | 1359 | 2.23 2001-03-04 1360 | ------------------------- 1361 | - Opening archive items in Explorer. 1362 | - Context menu for archive items in Explorer. 1363 | - Automatic adding extension to archive name in console version. 1364 | - Some bugs were fixed. 1365 | 1366 | 1367 | 2.22 2001-01-21 1368 | ------------------------- 1369 | - Supporting Zip archives containing more than 65535 files. 1370 | - Speed of Plugin for Explorer was increased. 1371 | - Searching start position of archive now is limited by 1372 | first 1MB part of file. 1373 | - Some bugs were fixed. 1374 | - Packet now doesn't contain 7zip.exe, far7zip.reg and 1375 | far7zip2.reg files. There is new far7z.reg file. 1376 | 1377 | 1378 | 2.21 2000-12-21 1379 | ------------------------- 1380 | - FAR Plugin was improved: 1381 | 1382 | - Showing process box during opening archives. 1383 | - Viewing properties of file by Ctrl-A. 1384 | - Alt-F6 in archive now immediately extracts selected files 1385 | to current directory. 1386 | 1387 | - Some bugs were fixed: 1388 | 1389 | - Entering to archive's subfolders in Explorer by clicking 1390 | items in main window didn't work under Windows ME/2000. 1391 | - Decompressing solid Rar archives sometimes gave error. 1392 | - Console version 7z.exe during list operation incorrectly 1393 | showed file names with national (non-english) charsets. 1394 | - FAR Plugin didn't execute some operations. 1395 | - Showing percents during extracting ZIP archives sometimes 1396 | was incorrect. 1397 | 1398 | 1399 | 2.20 2000-11-20 1400 | ------------------------- 1401 | - Supporting BZip2 and Cab. 1402 | - New program architecture with external 1403 | compression and cryptographic modules. 1404 | - Decryption support (Rar and Zip). 1405 | - New console client. 1406 | - Some bugs were fixed. 1407 | 1408 | 1409 | 2.11 2000-06-15 1410 | ------------------------- 1411 | - Bugs were fixed: 1412 | 1413 | - FAR Plugin incorrectly processed 1414 | names of subdirectories that use national 1415 | (non-english) charsets. 1416 | - gzip plugin could not compress empty files. 1417 | 1418 | 1419 | 2.10 2000-05-16 1420 | ------------------------- 1421 | - First level 7-Zip Plugin for FAR Manager. 1422 | - GUI version with integration to Windows Shell. 1423 | - Compression and decompressing GZip and TAR formats. 1424 | - Decompression RAR. 1425 | - Install & Uninstall support. 1426 | - Some bugs were fixed. 1427 | 1428 | 1429 | 2.01 1999-09-19 1430 | ------------------------- 1431 | - Small bug was fixed. 1432 | - Compression ratio was improved for some files. 1433 | 1434 | 1435 | 2.00 1999-07-18 1436 | ------------------------- 1437 | - Release. 1438 | - Big bug was fixed: previous versions incorrectly worked 1439 | during compressing with files that were referred by 1440 | direct(without wildcards) paths, containing subdirs parts. 1441 | - Compression and decompression speed were improved. 1442 | - -mx switch (maXimize compression) was added. 1443 | - Small bugs were fixed. 1444 | 1445 | 1446 | 2.00 Beta 1 1999-01-02 1447 | ------------------------- 1448 | - Original beta version. 1449 | 1450 | 1451 | End of document 1452 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/License.txt: -------------------------------------------------------------------------------- 1 | 7-Zip 2 | ~~~~~ 3 | License for use and distribution 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | 7-Zip Copyright (C) 1999-2020 Igor Pavlov. 7 | 8 | The licenses for files are: 9 | 10 | 1) 7z.dll: 11 | - The "GNU LGPL" as main license for most of the code 12 | - The "GNU LGPL" with "unRAR license restriction" for some code 13 | - The "BSD 3-clause License" for some code 14 | 2) All other files: the "GNU LGPL". 15 | 16 | Redistributions in binary form must reproduce related license information from this file. 17 | 18 | Note: 19 | You can use 7-Zip on any computer, including a computer in a commercial 20 | organization. You don't need to register or pay for 7-Zip. 21 | 22 | 23 | GNU LGPL information 24 | -------------------- 25 | 26 | This library is free software; you can redistribute it and/or 27 | modify it under the terms of the GNU Lesser General Public 28 | License as published by the Free Software Foundation; either 29 | version 2.1 of the License, or (at your option) any later version. 30 | 31 | This library is distributed in the hope that it will be useful, 32 | but WITHOUT ANY WARRANTY; without even the implied warranty of 33 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 34 | Lesser General Public License for more details. 35 | 36 | You can receive a copy of the GNU Lesser General Public License from 37 | http://www.gnu.org/ 38 | 39 | 40 | 41 | 42 | BSD 3-clause License 43 | -------------------- 44 | 45 | The "BSD 3-clause License" is used for the code in 7z.dll that implements LZFSE data decompression. 46 | That code was derived from the code in the "LZFSE compression library" developed by Apple Inc, 47 | that also uses the "BSD 3-clause License": 48 | 49 | ---- 50 | Copyright (c) 2015-2016, Apple Inc. All rights reserved. 51 | 52 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 53 | 54 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 55 | 56 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer 57 | in the documentation and/or other materials provided with the distribution. 58 | 59 | 3. Neither the name of the copyright holder(s) nor the names of any contributors may be used to endorse or promote products derived 60 | from this software without specific prior written permission. 61 | 62 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 63 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 64 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 65 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 66 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 67 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 68 | ---- 69 | 70 | 71 | 72 | 73 | unRAR license restriction 74 | ------------------------- 75 | 76 | The decompression engine for RAR archives was developed using source 77 | code of unRAR program. 78 | All copyrights to original unRAR code are owned by Alexander Roshal. 79 | 80 | The license for original unRAR code has the following restriction: 81 | 82 | The unRAR sources cannot be used to re-create the RAR compression algorithm, 83 | which is proprietary. Distribution of modified unRAR sources in separate form 84 | or as a part of other software is permitted, provided that it is clearly 85 | stated in the documentation and source comments that the code may 86 | not be used to develop a RAR (WinRAR) compatible archiver. 87 | 88 | 89 | -- 90 | Igor Pavlov 91 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/Uninstall.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/7z/Uninstall.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/descript.ion: -------------------------------------------------------------------------------- 1 | 7-zip.chm 7-Zip Help 2 | 7-Zip.dll 7-Zip Plugin 3 | 7-Zip32.dll 7-Zip Plugin 32-bit 4 | 7z.dll 7-Zip Engine 5 | 7z.exe 7-Zip Console 6 | 7z.sfx 7-Zip GUI SFX 7 | 7zCon.sfx 7-Zip Console SFX 8 | 7zFM.exe 7-Zip File Manager 9 | 7zg.exe 7-Zip GUI 10 | descript.ion 7-Zip File Descriptions 11 | history.txt 7-Zip History 12 | Lang 7-Zip Translations 13 | license.txt 7-Zip License 14 | readme.txt 7-Zip Overview 15 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/7z/readme.txt: -------------------------------------------------------------------------------- 1 | 7-Zip 20.02 2 | ----------- 3 | 4 | 7-Zip is a file archiver for Windows. 5 | 6 | 7-Zip Copyright (C) 1999-2020 Igor Pavlov. 7 | 8 | The main features of 7-Zip: 9 | 10 | - High compression ratio in the new 7z format 11 | - Supported formats: 12 | - Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM. 13 | - Unpacking only: AR, ARJ, Base64, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, 14 | IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, 15 | RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, XAR and Z. 16 | - Fast compression and decompression 17 | - Self-extracting capability for 7z format 18 | - Strong AES-256 encryption in 7z and ZIP formats 19 | - Integration with Windows Shell 20 | - Powerful File Manager 21 | - Powerful command line version 22 | - Localizations for 85 languages 23 | 24 | 25 | 7-Zip is free software distributed under the GNU LGPL (except for unRar code). 26 | Read License.txt for more information about license. 27 | 28 | 29 | This distribution package contains the following files: 30 | 31 | 7zFM.exe - 7-Zip File Manager 32 | 7-zip.dll - Plugin for Windows Shell 33 | 7-zip32.dll - Plugin for Windows Shell (32-bit plugin for 64-bit system) 34 | 7zg.exe - GUI module 35 | 7z.exe - Command line version 36 | 7z.dll - 7-Zip engine module 37 | 7z.sfx - SFX module (Windows version) 38 | 7zCon.sfx - SFX module (Console version) 39 | 40 | License.txt - License information 41 | readme.txt - This file 42 | History.txt - History of 7-Zip 43 | 7-zip.chm - User's Manual in HTML Help format 44 | descript.ion - Description for files 45 | 46 | Lang\en.ttt - English (base) localization file 47 | Lang\*.txt - Localization files 48 | 49 | 50 | --- 51 | End of document 52 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/AppBundle_Install.ps1: -------------------------------------------------------------------------------- 1 | $Desktop = "C:\Users\WDAGUtilityAccount\Desktop" 2 | $Sandbox_Root_Path = "C:\Run_in_Sandbox" 3 | $App_Bundle_File = "$Sandbox_Root_Path\App_Bundle.sdbapp" 4 | $SDBApp_Root_Path = "C:\SBDApp" 5 | $Get_Apps_to_install = [xml](Get-Content $App_Bundle_File) 6 | $Apps_to_install = $Get_Apps_to_install.Applications.Application 7 | foreach ($App in $Apps_to_install) { 8 | [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 9 | 10 | $App_File = $App.File 11 | $App_Path = $App.Path 12 | if ($App_Path) { 13 | $Folder_Name = $App_Path.split("\")[-1] 14 | $App_Folder = "$SDBApp_Root_Path\$Folder_Name" 15 | $App_Full_Path = "$App_Folder\$App_File" 16 | } else { 17 | $App_Folder = "$SDBApp_Root_Path" 18 | } 19 | 20 | $App_CommandLine = $App.CommandLine 21 | $App_SilentSwitch = $App.Silent_Switch 22 | 23 | if ( ($App_File -like "*.exe*") -or ($App_File -like "*.msi*") ) { 24 | if ($App_SilentSwitch -ne "") { 25 | Start-Process $App_Full_Path -ArgumentList "$App_SilentSwitch" -Wait 26 | } else { 27 | Start-Process $App_Full_Path -Wait 28 | } 29 | } elseif ( ($App_File -like "*.ps1*") -or ($App_File -like "*.vbs*") ) { 30 | & { Invoke-Expression ($App_Full_Path) } 31 | } elseif ($App_File -like "*.intunewin") { 32 | $Config_Folder_Path = "$Desktop\Intunewin_Config_Folder" 33 | New-Item -Path $Desktop -Name "Intunewin_Config_Folder" -Type Directory -Force 34 | $Intunewin_Content_File = "$Config_Folder_Path\Intunewin_Folder.txt" 35 | $Intunewin_Command_File = "$Config_Folder_Path\Intunewin_Install_Command.txt" 36 | 37 | $App_Full_Path | Out-File $Intunewin_Content_File -Force -NoNewline 38 | $App_CommandLine | Out-File $Intunewin_Command_File -Force -NoNewline 39 | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -sta -WindowStyle Normal -NoProfile -ExecutionPolicy Unrestricted -File $Sandbox_Root_Path\IntuneWin_Install.ps1 -Intunewin_Content_File $Intunewin_Content_File -Intunewin_Command_File $Intunewin_Command_File 40 | } else { 41 | Set-Location $App_Folder 42 | & { Invoke-Expression (Get-Content -Raw $App_File) } 43 | & { Invoke-Expression ($App_CommandLine) } 44 | } 45 | } -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/App_Bundle_template.sdbapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/EXE_Install.ps1: -------------------------------------------------------------------------------- 1 | $Sandbox_Folder = "C:\Run_in_Sandbox" 2 | $File = "$Sandbox_Folder\EXE_Command_File.txt" 3 | 4 | $Content = Get-Content -Raw $File 5 | $BaseFolder = Split-Path($Content.Split('"')[1]) 6 | $Executable = Split-Path($Content.Split('"')[1]) -Leaf 7 | $Executable = "./$Executable" 8 | $Arguments = ($Content.Split('"',3)[-1]).Trim() 9 | 10 | $Command = $Executable + " " + $Arguments 11 | 12 | Set-Location -Path $BaseFolder 13 | 14 | & { Invoke-Expression $Command} -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/IntuneWinAppUtilDecoder.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/IntuneWinAppUtilDecoder.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/IntuneWin_Install.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [String]$Intunewin_Content_File = "C:\Run_in_Sandbox\Intunewin_Folder.txt", 3 | [String]$Intunewin_Command_File = "C:\Run_in_Sandbox\Intunewin_Install_Command.txt" 4 | ) 5 | if (-not (Test-Path $Intunewin_Content_File) ) { 6 | EXIT 7 | } 8 | if (-not (Test-Path $Intunewin_Command_File) ) { 9 | EXIT 10 | } 11 | 12 | $Sandbox_Folder = "C:\Run_in_Sandbox" 13 | $ScriptPath = Get-Content -Raw $Intunewin_Content_File 14 | $Command = Get-Content -Raw $Intunewin_Command_File 15 | $Command = $Command.replace('"','') 16 | 17 | $FileName = (Get-Item $ScriptPath).BaseName 18 | 19 | $Intunewin_Extracted_Folder = "C:\Windows\Temp\intunewin" 20 | New-Item -Path $Intunewin_Extracted_Folder -Type Directory -Force | Out-Null 21 | Copy-Item -Path $ScriptPath -Destination $Intunewin_Extracted_Folder -Force 22 | $New_Intunewin_Path = "$Intunewin_Extracted_Folder\$FileName.intunewin" 23 | 24 | Set-Location -Path $Sandbox_Folder 25 | & .\IntuneWinAppUtilDecoder.exe $New_Intunewin_Path -s 26 | $IntuneWinDecoded_File_Name = "$Intunewin_Extracted_Folder\$FileName.decoded.zip" 27 | 28 | New-Item -Path "$Intunewin_Extracted_Folder\$FileName" -Type Directory -Force | Out-Null 29 | 30 | $IntuneWin_Rename = "$FileName.zip" 31 | 32 | Rename-Item -Path $IntuneWinDecoded_File_Name -NewName $IntuneWin_Rename -Force 33 | 34 | $Extract_Path = "$Intunewin_Extracted_Folder\$FileName" 35 | Expand-Archive -LiteralPath "$Intunewin_Extracted_Folder\$IntuneWin_Rename" -DestinationPath $Extract_Path -Force 36 | 37 | Remove-Item -Path "$Intunewin_Extracted_Folder\$IntuneWin_Rename" -Force 38 | Start-Sleep -Seconds 1 39 | 40 | $ServiceUI = "$Sandbox_Folder\ServiceUI.exe" 41 | $PsExec = "$Sandbox_Folder\PsExec.exe" 42 | 43 | 44 | & $PsExec \\localhost -w "$Extract_Path" -nobanner -accepteula -s $ServiceUI -Process:explorer.exe C:\windows\SysWOW64\cmd.exe /k $Command -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/Languages_XML/Language_de-DE.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | Ausführen der PS1 in der Sandbox 4 | Ausführen der PS1 in der Sandbox mit Parametern 5 | 6 | 7 | Ausführen der VBS in der Sandbox 8 | Ausführen der VBS in der Sandbox mit Parametern 9 | 10 | Ausführen der EXE in der Sandbox 11 | Ausführen der MSI in der Sandbox 12 | Extrahieren der ZIP in der Sandbox 13 | Freigeben dieses Ordners in einer Sandbox 14 | 15 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/Languages_XML/Language_en-US.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | Run the PS1 in Sandbox 4 | Run the PS1 in Sandbox with parameters 5 | 6 | 7 | Run the VBS in Sandbox 8 | Run the VBS in Sandbox with parameters 9 | 10 | Run the EXE in Sandbox 11 | Run the MSI in Sandbox 12 | Extract the ZIP in Sandbox 13 | Share this folder in a Sandbox 14 | 15 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/Languages_XML/Language_es-ES.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | Iniciar el archivo PS1 en Sandbox 4 | Ejecutar el archivo PS1 en Sandbox con parametros 5 | 6 | 7 | Iniciar el archivo VBS en Sandbox 8 | Ejecutar el archivo VBS en Sandbox con parametros 9 | 10 | Ejecutar el archivo EXE en Sandbox 11 | Ejecutar el archivo MSI en Sandbox 12 | Extraer el archivo ZIP en Sandbox 13 | Compartir el folder en Sandbox 14 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/Languages_XML/Language_fr-FR.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | Exécuter le PS1 dans Sandbox 4 | Exécuter le PS1 dans Sandbox avec des paramètres 5 | 6 | 7 | Exécuter le VBS dans Sandbox 8 | Exécuter le VBS dans Sandbox avec des paramètres 9 | 10 | Exécuter l'EXE dans Sandbox 11 | Exécuter le MSI dans Sandbox 12 | Extraire le ZIP dans Sanbdox 13 | Partager ce dossier dans Sandbox 14 | 15 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/Languages_XML/Language_it-IT.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | Eseguire il PS1 nella Sandbox 4 | Eseguire il PS1 nella Sandbox con i parametri 5 | 6 | 7 | Eseguire il VBS nella Sandbox 8 | Eseguire il VBS nella Sandbox con i parametri 9 | 10 | Eseguire l’EXE nella Sandbox 11 | Eseguire lo MSI nella Sandbox 12 | Estrarre lo ZIP in una Sandbox 13 | Condividere questa cartella in una Sandbox 14 | 15 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/PsExec.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/PsExec.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/RunInSandbox.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [Parameter(Mandatory=$true)] [String]$Type, 3 | [Parameter(Mandatory=$true)] [String]$ScriptPath 4 | ) 5 | 6 | #Start-Transcript -Path $(Join-Path -Path $([System.Environment]::GetEnvironmentVariables('Machine').TEMP) -ChildPath "RunInSandbox.log") 7 | 8 | $special_char_array = 'é', 'è', 'à', 'â', 'ê', 'û', 'î', 'ä', 'ë', 'ü', 'ï', 'ö', 'ù', 'ò', '~', '!', '@', '#', '$', '%', '^', '&', '+', '=', '}', '{', '|', '<', '>', ';' 9 | foreach ($char in $special_char_array) { 10 | if ($ScriptPath -like "*$char*") { 11 | [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 12 | $message = "There is a special character in the path of the file (`'" + $char + "`').`nWindows Sandbox does not support this!" 13 | [System.Windows.Forms.MessageBox]::Show($message, "Issue with your file", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Warning) 14 | EXIT 15 | } 16 | } 17 | 18 | $ScriptPath = $ScriptPath.replace('"', '') 19 | $ScriptPath = $ScriptPath.Trim(); 20 | $ScriptPath = [WildcardPattern]::Escape($ScriptPath) 21 | 22 | if ( ($Type -eq "Folder_Inside") -or ($Type -eq "Folder_On") ) { 23 | $DirectoryName = (Get-Item $ScriptPath).fullname 24 | } else { 25 | $FolderPath = Split-Path (Split-Path "$ScriptPath" -Parent) -Leaf 26 | $DirectoryName = (Get-Item $ScriptPath).DirectoryName 27 | $FileName = (Get-Item $ScriptPath).BaseName 28 | $Full_FileName = (Get-Item $ScriptPath).Name 29 | } 30 | 31 | $Sandbox_Desktop_Path = "C:\Users\WDAGUtilityAccount\Desktop" 32 | $Sandbox_Shared_Path = "$Sandbox_Desktop_Path\$FolderPath" 33 | 34 | $Sandbox_Root_Path = "C:\Run_in_Sandbox" 35 | $Full_Startup_Path = "$Sandbox_Shared_Path\$Full_FileName" 36 | $Full_Startup_Path_Quoted = """$Full_Startup_Path""" 37 | 38 | $Run_in_Sandbox_Folder = "$env:ProgramData\Run_in_Sandbox" 39 | 40 | $xml = "$Run_in_Sandbox_Folder\Sandbox_Config.xml" 41 | $my_xml = [xml](Get-Content $xml) 42 | $Sandbox_VGpu = $my_xml.Configuration.VGpu 43 | $Sandbox_Networking = $my_xml.Configuration.Networking 44 | $Sandbox_ReadOnlyAccess = $my_xml.Configuration.ReadOnlyAccess 45 | $Sandbox_WSB_Location = $my_xml.Configuration.WSB_Location 46 | $Sandbox_AudioInput = $my_xml.Configuration.AudioInput 47 | $Sandbox_VideoInput = $my_xml.Configuration.VideoInput 48 | $Sandbox_ProtectedClient = $my_xml.Configuration.ProtectedClient 49 | $Sandbox_PrinterRedirection = $my_xml.Configuration.PrinterRedirection 50 | $Sandbox_ClipboardRedirection = $my_xml.Configuration.ClipboardRedirection 51 | $Sandbox_MemoryInMB = $my_xml.Configuration.MemoryInMB 52 | $WSB_Cleanup = $my_xml.Configuration.WSB_Cleanup 53 | $Hide_Powershell = $my_xml.Configuration.Hide_Powershell 54 | 55 | [System.Collections.ArrayList]$PowershellParameters = @( 56 | '-sta' 57 | '-WindowStyle' 58 | 'Hidden' 59 | '-NoProfile' 60 | '-ExecutionPolicy' 61 | 'Unrestricted' 62 | ) 63 | 64 | if ($Hide_Powershell -eq "False") { 65 | $PowershellParameters[[array]::IndexOf($PowershellParameters, "Hidden")] = "Normal" 66 | } 67 | 68 | $PSRun_File = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe $PowershellParameters -File" 69 | $PSRun_Command = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe $PowershellParameters -Command" 70 | 71 | if ($Sandbox_WSB_Location -eq "Default") { 72 | $Sandbox_File_Path = "$env:temp\$FileName.wsb" 73 | } else { 74 | $Sandbox_File_Path = "$Sandbox_WSB_Location\$FileName.wsb" 75 | } 76 | 77 | if (Test-Path $Sandbox_File_Path) { 78 | Remove-Item $Sandbox_File_Path 79 | } 80 | 81 | 82 | function New-WSB { 83 | [CmdletBinding(SupportsShouldProcess = $true)] 84 | param ( 85 | [String]$Command_to_Run 86 | ) 87 | 88 | New-Item $Sandbox_File_Path -type file -Force | Out-Null 89 | Add-Content -LiteralPath $Sandbox_File_Path -Value "" 90 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_VGpu" 91 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_Networking" 92 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_AudioInput" 93 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_VideoInput" 94 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_ProtectedClient" 95 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_PrinterRedirection" 96 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_ClipboardRedirection" 97 | if ( -not [string]::IsNullOrEmpty($Sandbox_MemoryInMB) ) { 98 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_MemoryInMB" 99 | } 100 | 101 | Add-Content $Sandbox_File_Path " " 102 | if ( ($Type -eq "Intunewin") -or ($Type -eq "ISO") -or ($Type -eq "7z") -or ($Type -eq "PS1System") -or ($Type -eq "SDBApp") -or ($Type -eq "EXE") -or ($Type -eq "Folder_On") -or ($Type -eq "Folder_Inside") ) { 103 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 104 | Add-Content -LiteralPath $Sandbox_File_Path -Value " C:\ProgramData\Run_in_Sandbox" 105 | Add-Content -LiteralPath $Sandbox_File_Path -Value " C:\Run_in_Sandbox" 106 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_ReadOnlyAccess" 107 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 108 | } 109 | 110 | if ($Type -eq "SDBApp") { 111 | $SDB_Full_Path = $ScriptPath 112 | Copy-Item $ScriptPath $Run_in_Sandbox_Folder -Force 113 | $Get_Apps_to_install = [xml](Get-Content $SDB_Full_Path) 114 | $Apps_to_install_path = $Get_Apps_to_install.Applications.Application.Path | Select-Object -Unique 115 | 116 | ForEach ($App_Path in $Apps_to_install_path) { 117 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 118 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $App_Path" 119 | Add-Content -LiteralPath $Sandbox_File_Path -Value " C:\SBDApp" 120 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_ReadOnlyAccess" 121 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 122 | } 123 | } else { 124 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 125 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $DirectoryName" 126 | if ($Type -eq "IntuneWin") { Add-Content -LiteralPath $Sandbox_File_Path -Value " C:\IntuneWin" } 127 | Add-Content -LiteralPath $Sandbox_File_Path -Value " $Sandbox_ReadOnlyAccess" 128 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 129 | } 130 | Add-Content -LiteralPath $Sandbox_File_Path -Value " " 131 | 132 | Add-Content -Path $Sandbox_File_Path -Value " " 133 | Add-Content -Path $Sandbox_File_Path -Value " $Command_to_Run" 134 | Add-Content -Path $Sandbox_File_Path -Value " " 135 | Add-Content -Path $Sandbox_File_Path -Value "" 136 | } 137 | 138 | switch ($Type) { 139 | "7Z" { 140 | $Script:Startup_Command = "$Sandbox_Root_Path\7z\7z.exe" + " " + "x" + " " + "$Full_Startup_Path_Quoted" + " " + "-y" + " " + "-o" + "C:\Users\WDAGUtilityAccount\Desktop\Extracted_File" 141 | New-WSB -Command_to_Run $Startup_Command 142 | } 143 | "CMD" { 144 | $Script:Startup_Command = $PSRun_Command + " " + "Start-Process $Full_Startup_Path_Quoted" 145 | New-WSB -Command_to_Run $Startup_Command 146 | } 147 | "EXE" { 148 | [System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | Out-Null 149 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.dll") | Out-Null 150 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.IconPacks.dll") | Out-Null 151 | Function LoadXml ($global:file2) { 152 | $XamlLoader = (New-Object System.Xml.XmlDocument) 153 | $XamlLoader.Load($file2) 154 | return $XamlLoader 155 | } 156 | 157 | $XamlMainWindow = LoadXml("$Run_in_Sandbox_Folder\RunInSandbox_EXE.xaml") 158 | $Reader = (New-Object System.Xml.XmlNodeReader $XamlMainWindow) 159 | $Form_EXE = [Windows.Markup.XamlReader]::Load($Reader) 160 | $EXE_Command_File = "$Run_in_Sandbox_Folder\EXE_Command_File.txt" 161 | 162 | $switches_for_exe = $Form_EXE.findname("switches_for_exe") 163 | $add_switches = $Form_EXE.findname("add_switches") 164 | 165 | $add_switches.Add_Click({ 166 | $Script:Switches_EXE = $switches_for_exe.Text.ToString() 167 | $Script:Startup_Command = $Full_Startup_Path_Quoted + " " + $Switches_EXE 168 | $Startup_Command | Out-File $EXE_Command_File -Force -NoNewline 169 | $Form_EXE.close() 170 | }) 171 | 172 | $Form_EXE.Add_Closing({ 173 | $Script:Switches_EXE = $switches_for_exe.Text.ToString() 174 | $Script:Startup_Command = $Full_Startup_Path_Quoted + " " + $Switches_EXE 175 | $Startup_Command | Out-File $EXE_Command_File -Force -NoNewline 176 | }) 177 | 178 | $Form_EXE.ShowDialog() | Out-Null 179 | 180 | $EXE_Installer = "$Sandbox_Root_Path\EXE_Install.ps1" 181 | $Script:Startup_Command = $PSRun_File + " " + "$EXE_Installer" 182 | New-WSB -Command_to_Run $Startup_Command 183 | } 184 | "Folder_On" { 185 | New-WSB 186 | } 187 | "Folder_Inside" { 188 | New-WSB 189 | } 190 | "HTML" { 191 | $Script:Startup_Command = $PSRun_Command + " " + "`"Invoke-Item -Path `'$Full_Startup_Path_Quoted`'`"" 192 | New-WSB -Command_to_Run $Startup_Command 193 | } 194 | "URL" { 195 | $Script:Startup_Command = $PSRun_Command + " " + "Start-Process $Sandbox_Root_Path" 196 | New-WSB -Command_to_Run $Startup_Command 197 | } 198 | "Intunewin" { 199 | $Intunewin_Folder = "C:\IntuneWin\$FileName.intunewin" 200 | $Intunewin_Content_File = "$Run_in_Sandbox_Folder\Intunewin_Folder.txt" 201 | $Intunewin_Command_File = "$Run_in_Sandbox_Folder\Intunewin_Install_Command.txt" 202 | $Intunewin_Folder | Out-File $Intunewin_Content_File -Force -NoNewline 203 | 204 | #$Full_Startup_Path_UnQuoted = $Full_Startup_Path_Quoted.Replace('"', "") 205 | 206 | [System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | Out-Null 207 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.dll") | Out-Null 208 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.IconPacks.dll") | Out-Null 209 | function LoadXml ($global:file1) { 210 | $XamlLoader = (New-Object System.Xml.XmlDocument) 211 | $XamlLoader.Load($file1) 212 | return $XamlLoader 213 | } 214 | 215 | $XamlMainWindow = LoadXml("$Run_in_Sandbox_Folder\RunInSandbox_Intunewin.xaml") 216 | $Reader = (New-Object System.Xml.XmlNodeReader $XamlMainWindow) 217 | $Form_PS1 = [Windows.Markup.XamlReader]::Load($Reader) 218 | 219 | $install_command_intunewin = $Form_PS1.findname("install_command_intunewin") 220 | $add_install_command = $Form_PS1.findname("add_install_command") 221 | 222 | $add_install_command.add_click({ 223 | $Script:install_command = $install_command_intunewin.Text.ToString() 224 | $install_command | Out-File $Intunewin_Command_File 225 | $Form_PS1.close() 226 | }) 227 | 228 | $Form_PS1.Add_Closing({ 229 | $Script:install_command = $install_command_intunewin.Text.ToString() 230 | $install_command | Out-File $Intunewin_Command_File -Force -NoNewline 231 | $Form_PS1.close() 232 | }) 233 | 234 | $Form_PS1.ShowDialog() | Out-Null 235 | 236 | $Intunewin_Installer = "$Sandbox_Root_Path\IntuneWin_Install.ps1" 237 | $Script:Startup_Command = $PSRun_File + " " + "$Intunewin_Installer" 238 | New-WSB -Command_to_Run $Startup_Command 239 | } 240 | "ISO" { 241 | $Script:Startup_Command = "$Sandbox_Root_Path\7z\7z.exe" + " " + "x" + " " + "$Full_Startup_Path_Quoted" + " " + "-y" + " " + "-o" + "C:\Users\WDAGUtilityAccount\Desktop\Extracted_ISO" 242 | New-WSB -Command_to_Run $Startup_Command 243 | } 244 | "MSI" { 245 | $Full_Startup_Path_UnQuoted = $Full_Startup_Path_Quoted.Replace('"', "") 246 | 247 | [System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | Out-Null 248 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.dll") | Out-Null 249 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.IconPacks.dll") | Out-Null 250 | function LoadXml ($global:file2) { 251 | $XamlLoader = (New-Object System.Xml.XmlDocument) 252 | $XamlLoader.Load($file2) 253 | return $XamlLoader 254 | } 255 | 256 | $XamlMainWindow = LoadXml("$Run_in_Sandbox_Folder\RunInSandbox_EXE.xaml") 257 | $Reader = (New-Object System.Xml.XmlNodeReader $XamlMainWindow) 258 | $Form_MSI = [Windows.Markup.XamlReader]::Load($Reader) 259 | 260 | $switches_for_exe = $Form_MSI.findname("switches_for_exe") 261 | $add_switches = $Form_MSI.findname("add_switches") 262 | 263 | $add_switches.Add_Click({ 264 | $Script:Switches_MSI = $switches_for_exe.Text.ToString() 265 | $Script:Startup_Command = "msiexec /i `"$Full_Startup_Path_UnQuoted`" " + $Switches_MSI 266 | $Form_MSI.close() 267 | }) 268 | 269 | $Form_MSI.Add_Closing({ 270 | $Script:Switches_MSI = $switches_for_exe.Text.ToString() 271 | $Script:Startup_Command = "msiexec /i `"$Full_Startup_Path_UnQuoted`" " + $Switches_MSI 272 | }) 273 | 274 | $Form_MSI.ShowDialog() | Out-Null 275 | 276 | New-WSB -Command_to_Run $Startup_Command 277 | } 278 | "MSIX" { 279 | $Script:Startup_Command = $PSRun_Command + " " + "Add-AppPackage -Path $Full_Startup_Path_Quoted" 280 | New-WSB -Command_to_Run $Startup_Command 281 | } 282 | "PDF" { 283 | $Full_Startup_Path_Quoted = $Full_Startup_Path_Quoted.Replace('"', '') 284 | $Script:Startup_Command = $PSRun_Command + " " + "`"Invoke-Item -Path `'$Full_Startup_Path_Quoted`'`"" 285 | New-WSB -Command_to_Run $Startup_Command 286 | } 287 | "PPKG" { 288 | $Script:Startup_Command = $PSRun_Command + " " + "Install-ProvisioningPackage $Full_Startup_Path_Quoted -forceinstall -quietinstall" 289 | New-WSB -Command_to_Run $Startup_Command 290 | } 291 | "PS1Basic" { 292 | $Script:Startup_Command = $PSRun_File + " " + "$Full_Startup_Path_Quoted" 293 | New-WSB -Command_to_Run $Startup_Command 294 | } 295 | "PS1System" { 296 | $Script:Startup_Command = "$Sandbox_Root_Path\PsExec.exe \\localhost -nobanner -accepteula -s Powershell -ExecutionPolicy Bypass -File $Full_Startup_Path_Quoted" 297 | #$Script:Startup_Command = "$Sandbox_Root_Path\PsExec.exe -accepteula -i -d -s powershell -executionpolicy bypass -file $Full_Startup_Path_Quoted" 298 | New-WSB -Command_to_Run $Startup_Command 299 | } 300 | "PS1Params" { 301 | $Full_Startup_Path_UnQuoted = $Full_Startup_Path_Quoted.Replace('"', "") 302 | 303 | [System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | Out-Null 304 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.dll") | Out-Null 305 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.IconPacks.dll") | Out-Null 306 | function LoadXml ($global:file1) { 307 | $XamlLoader = (New-Object System.Xml.XmlDocument) 308 | $XamlLoader.Load($file1) 309 | return $XamlLoader 310 | } 311 | 312 | $XamlMainWindow = LoadXml("$Run_in_Sandbox_Folder\RunInSandbox_Params.xaml") 313 | $Reader = (New-Object System.Xml.XmlNodeReader $XamlMainWindow) 314 | $Form_PS1 = [Windows.Markup.XamlReader]::Load($Reader) 315 | 316 | $parameters_to_add = $Form_PS1.findname("parameters_to_add") 317 | $add_parameters = $Form_PS1.findname("add_parameters") 318 | 319 | $add_parameters.add_click({ 320 | $Script:Paramaters = $parameters_to_add.Text.ToString() 321 | $Script:Startup_Command = $PSRun_File + " " + "$Full_Startup_Path_UnQuoted" + " " + "$Paramaters" 322 | $Form_PS1.close() 323 | }) 324 | 325 | $Form_PS1.Add_Closing({ 326 | $Script:Paramaters = $parameters_to_add.Text.ToString() 327 | $Script:Startup_Command = $PSRun_File + " " + "$Full_Startup_Path_UnQuoted" + " " + "$Paramaters" 328 | }) 329 | 330 | $Form_PS1.ShowDialog() | Out-Null 331 | 332 | New-WSB -Command_to_Run $Startup_Command 333 | } 334 | "REG" { 335 | $Script:Startup_Command = "REG IMPORT $Full_Startup_Path_Quoted" 336 | New-WSB -Command_to_Run $Startup_Command 337 | } 338 | "SDBApp" { 339 | $AppBundle_Installer = "$Sandbox_Root_Path\AppBundle_Install.ps1" 340 | $Script:Startup_Command = $PSRun_File + " " + "$AppBundle_Installer" 341 | New-WSB -Command_to_Run $Startup_Command 342 | } 343 | "VBSBasic" { 344 | $Script:Startup_Command = "wscript.exe $Full_Startup_Path_Quoted" 345 | New-WSB -Command_to_Run $Startup_Command 346 | } 347 | "VBSParams" { 348 | $Full_Startup_Path_UnQuoted = $Full_Startup_Path_Quoted.Replace('"', '') 349 | 350 | [System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | Out-Null 351 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.dll") | Out-Null 352 | [System.Reflection.Assembly]::LoadFrom("$Run_in_Sandbox_Folder\assembly\MahApps.Metro.IconPacks.dll") | Out-Null 353 | function LoadXml ($Script:file1) { 354 | $XamlLoader = (New-Object System.Xml.XmlDocument) 355 | $XamlLoader.Load($file1) 356 | return $XamlLoader 357 | } 358 | 359 | $XamlMainWindow = LoadXml("$Run_in_Sandbox_Folder\RunInSandbox_Params.xaml") 360 | $Reader = (New-Object System.Xml.XmlNodeReader $XamlMainWindow) 361 | $Form_VBS = [Windows.Markup.XamlReader]::Load($Reader) 362 | 363 | $parameters_to_add = $Form_VBS.findname("parameters_to_add") 364 | $add_parameters = $Form_VBS.findname("add_parameters") 365 | 366 | $add_parameters.add_click({ 367 | $Script:Paramaters = $parameters_to_add.Text.ToString() 368 | $Script:Startup_Command = "wscript.exe $Full_Startup_Path_UnQuoted $Paramaters" 369 | $Form_VBS.close() 370 | }) 371 | 372 | $Form_VBS.Add_Closing({ 373 | $Script:Paramaters = $parameters_to_add.Text.ToString() 374 | $Script:Startup_Command = "wscript.exe $Full_Startup_Path_UnQuoted $Paramaters" 375 | }) 376 | 377 | $Form_VBS.ShowDialog() | Out-Null 378 | 379 | New-WSB -Command_to_Run $Startup_Command 380 | } 381 | "ZIP" { 382 | $Script:Startup_Command = $PSRun_Command + " " + "`"Expand-Archive -LiteralPath '$Full_Startup_Path' -DestinationPath '$Sandbox_Desktop_Path\ZIP_extracted'`"" 383 | New-WSB -Command_to_Run $Startup_Command 384 | } 385 | } 386 | 387 | Start-Process -FilePath $Sandbox_File_Path -Wait 388 | do { 389 | Start-Sleep -Seconds 1 390 | } while (Get-Process -Name "WindowsSandboxServer" -ErrorAction SilentlyContinue) 391 | 392 | if ($WSB_Cleanup -eq $True) { 393 | Remove-Item -LiteralPath $Sandbox_File_Path -Force -ErrorAction SilentlyContinue 394 | Remove-Item -LiteralPath $Intunewin_Command_File -Force -ErrorAction SilentlyContinue 395 | Remove-Item -LiteralPath $Intunewin_Content_File -Force -ErrorAction SilentlyContinue 396 | Remove-Item -LiteralPath $EXE_Command_File -Force -ErrorAction SilentlyContinue 397 | Remove-Item -LiteralPath "$Run_in_Sandbox_Folder\App_Bundle.sdbapp" -Force -ErrorAction SilentlyContinue 398 | } -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/RunInSandbox_Config.ps1: -------------------------------------------------------------------------------- 1 | [System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | out-null 2 | [System.Reflection.Assembly]::LoadFrom(".\assembly\MahApps.Metro.dll") | out-null 3 | [System.Reflection.Assembly]::LoadFrom(".\assembly\MahApps.Metro.IconPacks.dll") | out-null 4 | function LoadXml ($global:file1) { 5 | $XamlLoader=(New-Object System.Xml.XmlDocument) 6 | $XamlLoader.Load($file1) 7 | return $XamlLoader 8 | } 9 | 10 | $XamlMainWindow=LoadXml(".\RunInSandbox_Config.xaml") 11 | $Reader=(New-Object System.Xml.XmlNodeReader $XamlMainWindow) 12 | $Form_PS1 = [Windows.Markup.XamlReader]::Load($Reader) 13 | 14 | $Check_Uncheck_All = $Form_PS1.findname("Check_Uncheck_All") 15 | $Run_EXE = $Form_PS1.findname("Run_EXE") 16 | $Run_MSI = $Form_PS1.findname("Run_MSI") 17 | $Run_PS1 = $Form_PS1.findname("Run_PS1") 18 | $Run_VBS = $Form_PS1.findname("Run_VBS") 19 | $Run_MSIX = $Form_PS1.findname("Run_MSIX") 20 | $Run_PPKG = $Form_PS1.findname("Run_PPKG") 21 | $Run_HTML = $Form_PS1.findname("Run_HTML") 22 | $Extract_ZIP = $Form_PS1.findname("Extract_ZIP") 23 | $Extract_ISO = $Form_PS1.findname("Extract_ISO") 24 | $Share_Folder = $Form_PS1.findname("Share_Folder") 25 | $Run_Reg = $Form_PS1.findname("Run_Reg") 26 | $Run_Intunewin = $Form_PS1.findname("Run_Intunewin") 27 | $Multiple_Apps = $Form_PS1.findname("Multiple_Apps") 28 | $Apply_install = $Form_PS1.findname("Apply_install") 29 | $Run_CMD = $Form_PS1.findname("Run_CMD") 30 | $Open_PDF = $Form_PS1.findname("Open_PDF") 31 | 32 | $Check_Uncheck_All.add_click({ 33 | If($Check_Uncheck_All.IsChecked -eq $True) 34 | { 35 | $Run_EXE.IsChecked = $True 36 | $Run_MSI.IsChecked = $True 37 | $Run_PS1.IsChecked = $True 38 | $Run_VBS.IsChecked = $True 39 | $Run_PPKG.IsChecked = $True 40 | $Run_HTML.IsChecked = $True 41 | $Run_MSIX.IsChecked = $True 42 | $Extract_ZIP.IsChecked = $True 43 | $Extract_ISO.IsChecked = $True 44 | $Share_Folder.IsChecked = $True 45 | $Run_Reg.IsChecked = $True 46 | $Run_Intunewin.IsChecked = $True 47 | $Multiple_Apps.IsChecked = $True 48 | $Open_PDF.IsChecked = $True 49 | $Run_CMD.IsChecked = $True 50 | } else{ 51 | $Run_EXE.IsChecked = $False 52 | $Run_MSI.IsChecked = $False 53 | $Run_PS1.IsChecked = $False 54 | $Run_VBS.IsChecked = $False 55 | $Run_PPKG.IsChecked = $False 56 | $Run_HTML.IsChecked = $False 57 | $Run_MSIX.IsChecked = $False 58 | $Extract_ZIP.IsChecked = $False 59 | $Extract_ISO.IsChecked = $False 60 | $Share_Folder.IsChecked = $False 61 | $Run_Reg.IsChecked = $False 62 | $Run_Intunewin.IsChecked = $False 63 | $Multiple_Apps.IsChecked = $False 64 | $Open_PDF.IsChecked = $False 65 | $Run_CMD.IsChecked = $False 66 | } 67 | }) 68 | 69 | $Apply_install.add_click({ 70 | $Run_in_Sandbox_Folder = "C:\ProgramData\Run_in_Sandbox" 71 | $XML_Config = "$Run_in_Sandbox_Folder\Sandbox_Config.xml" 72 | $Get_XML_Content = [xml] (Get-Content $XML_Config) 73 | 74 | $EXE_Status = ($Run_EXE.IsChecked).ToString() 75 | $MSI_Status = ($Run_MSI.IsChecked).ToString() 76 | $PS1_Status = ($Run_PS1.IsChecked).ToString() 77 | $VBS_Status = ($Run_VBS.IsChecked).ToString() 78 | $PPKG_Status = ($Run_PPKG.IsChecked).ToString() 79 | $HTML_Status = ($Run_HTML.IsChecked).ToString() 80 | $MSIX_Status = ($Run_MSIX.IsChecked).ToString() 81 | $ZIP_Status = ($Extract_ZIP.IsChecked).ToString() 82 | $ISO_Status = ($Extract_ISO.IsChecked).ToString() 83 | $Folder_Status = ($Share_Folder.IsChecked).ToString() 84 | $Reg_Status = ($Run_Reg.IsChecked).ToString() 85 | $Intunewin_Status = ($Run_Intunewin.IsChecked).ToString() 86 | $MultipleApp_Status = ($Multiple_Apps.IsChecked).ToString() 87 | $Open_PDF_Status = ($Open_PDF.IsChecked).ToString() 88 | $Run_CMD_Status = ($Run_CMD.IsChecked).ToString() 89 | 90 | $Get_XML_Content.Configuration.ContextMenu_EXE = $EXE_Status 91 | $Get_XML_Content.Configuration.ContextMenu_MSI = $MSI_Status 92 | $Get_XML_Content.Configuration.ContextMenu_PS1 = $PS1_Status 93 | $Get_XML_Content.Configuration.ContextMenu_VBS = $VBS_Status 94 | $Get_XML_Content.Configuration.ContextMenu_PPKG = $PPKG_Status 95 | $Get_XML_Content.Configuration.ContextMenu_HTML = $HTML_Status 96 | $Get_XML_Content.Configuration.ContextMenu_MSIX = $MSIX_Status 97 | $Get_XML_Content.Configuration.ContextMenu_ZIP = $ZIP_Status 98 | $Get_XML_Content.Configuration.ContextMenu_ISO = $ISO_Status 99 | $Get_XML_Content.Configuration.ContextMenu_Folder = $Folder_Status 100 | $Get_XML_Content.Configuration.ContextMenu_Reg = $Reg_Status 101 | $Get_XML_Content.Configuration.ContextMenu_Intunewin = $Intunewin_Status 102 | $Get_XML_Content.Configuration.ContextMenu_MultipleApp = $MultipleApp_Status 103 | $Get_XML_Content.Configuration.ContextMenu_PDF = $Open_PDF_Status 104 | $Get_XML_Content.Configuration.ContextMenu_CMD = $Run_CMD_Status 105 | 106 | $Get_XML_Content.Save($XML_Config) 107 | $Form_PS1.Close() 108 | }) 109 | 110 | $Form_PS1.ShowDialog() | Out-Null -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/RunInSandbox_Config.xaml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/RunInSandbox_Intunewin.xaml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/RunInSandbox_Params.xaml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/Sandbox_Config.xml: -------------------------------------------------------------------------------- 1 |  2 | Enable 3 | Enable 4 | true 5 | Default 6 | en-us 7 | Default 8 | Default 9 | Default 10 | Default 11 | Default 12 | 13 | True 14 | True 15 | True 16 | True 17 | True 18 | True 19 | True 20 | True 21 | True 22 | True 23 | True 24 | True 25 | True 26 | True 27 | True 28 | True 29 | True 30 | 31 | -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/ServiceUI.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/ServiceUI.exe -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/assembly/MahApps.Metro.IconPacks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/assembly/MahApps.Metro.IconPacks.dll -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/assembly/MahApps.Metro.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/assembly/MahApps.Metro.dll -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/assembly/System.Windows.Interactivity.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/assembly/System.Windows.Interactivity.dll -------------------------------------------------------------------------------- /Sources/Run_in_Sandbox/sandbox.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/Sources/Run_in_Sandbox/sandbox.ico -------------------------------------------------------------------------------- /Template_files/App_Bundle_template.sdbapp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /ps1_system.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Joly0/Run-in-Sandbox/4cbc64e5ad60cfeb5c1a69d1e89e962b5263c84c/ps1_system.gif --------------------------------------------------------------------------------