├── 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 | 
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 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/Sources/Run_in_Sandbox/RunInSandbox_EXE.xaml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
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
--------------------------------------------------------------------------------