├── assets └── sandbox.png ├── Folding In Sandbox ├── Module │ ├── FAHSandbox.psd1 │ ├── FAHSandbox.psm1 │ ├── Private │ │ ├── CreateFAHConf.ps1 │ │ ├── VerifyBios.ps1 │ │ ├── VerifySandbox.ps1 │ │ ├── GetFAH.ps1 │ │ └── CreateLogonScript.ps1 │ └── Public │ │ └── Start.ps1 ├── README.md └── install_folding_sandbox_on_host.ps1 ├── .github └── ISSUE_TEMPLATE │ ├── documentation.yml │ ├── feature_request.yml │ └── report-a-bug.yml ├── CODE_OF_CONDUCT.md ├── OUTREACH.md ├── LICENSE ├── CONTRIBUTING.md ├── SECURITY.md ├── README.md └── .gitignore /assets/sandbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Windows-Sandbox/HEAD/assets/sandbox.png -------------------------------------------------------------------------------- /Folding In Sandbox/Module/FAHSandbox.psd1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Windows-Sandbox/HEAD/Folding In Sandbox/Module/FAHSandbox.psd1 -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.yml: -------------------------------------------------------------------------------- 1 | name: "Documentation feedback or issue" 2 | description: Report any issues or share suggestions for improving our documentation 3 | labels: 4 | - Documentation 5 | body: 6 | - id: description 7 | type: textarea 8 | attributes: 9 | label: Provide a description of requested docs changes 10 | placeholder: Briefly describe which document needs to be corrected and why. 11 | validations: 12 | required: true 13 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Microsoft Open Source Code of Conduct 2 | 3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 4 | 5 | Resources: 6 | 7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) 8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) 9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns 10 | -------------------------------------------------------------------------------- /Folding In Sandbox/Module/FAHSandbox.psm1: -------------------------------------------------------------------------------- 1 | $Public = @( Get-ChildItem -Path $PSScriptRoot\Public\*.ps1 -ErrorAction SilentlyContinue ) 2 | $Private = @( Get-ChildItem -Path $PSScriptRoot\Private\*.ps1 -ErrorAction SilentlyContinue ) 3 | 4 | foreach($import in @($Public + $Private)) 5 | { 6 | Try 7 | { 8 | . $import.fullname 9 | } 10 | Catch 11 | { 12 | Write-Error -Message "Failed to import function $($import.fullname): $_" 13 | } 14 | } 15 | 16 | Export-ModuleMember -Function $Public.Basename -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: "Suggest a new feature or improvement" 2 | description: Help us improve your Windows Sandbox experience! 3 | labels: 4 | - feature-request 5 | body: 6 | - id: description 7 | type: textarea 8 | attributes: 9 | label: Suggested new feature or improvement 10 | placeholder: Tell us about the new feature or improvement you'd like to see. 11 | validations: 12 | required: true 13 | 14 | - id: scenario 15 | type: textarea 16 | attributes: 17 | label: Scenario 18 | placeholder: How could this new feature be used? Feel free to provide examples. 19 | validations: 20 | required: true 21 | 22 | - id: supportinginfo 23 | type: textarea 24 | attributes: 25 | label: Additional details 26 | placeholder: Enter more info or links to give us more details. 27 | validations: 28 | required: false 29 | 30 | - type: markdown 31 | attributes: 32 | value: Please limit one request per issue. 33 | -------------------------------------------------------------------------------- /OUTREACH.md: -------------------------------------------------------------------------------- 1 | illustration showing Windows Sandbox being secure and easy to use 2 | 3 | # Get involved with Windows Sandbox! 4 | 5 | At Windows Sandbox, we are passionate about outreach and inclusivity. Our feature is designed to be accessible and beneficial for everyone, regardless of your background or level of experience. We believe in supporting young people in tech through hands-on experiences and practical learning opportunities. To stay connected and take your skills to the next level, we invite you to sign up for future events and resources. Whether you're interested in resume reviews, career counselling, Windows Sandbox hackathons, or hands-on workshops, we would love to keep in touch with you. 6 | 7 | Sign up [here](https://forms.office.com/r/ZtTm37TL3b) to receive notifications about upcoming events and exclusive opportunities. 8 | 9 |
10 | 11 | > All data is stored in line with [Microsoft's Privacy Policy](https://privacy.microsoft.com/en-us/privacystatement). 12 | -------------------------------------------------------------------------------- /Folding In Sandbox/Module/Private/CreateFAHConf.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | function CreateFAHConf 3 | { 4 | <# 5 | .SYNOPSIS 6 | Create the FAH configuration file 7 | .DESCRIPTION 8 | Creates the configuration file used to run FAH 9 | .EXAMPLE 10 | C:\> CreateFAHConf -team '251561'; 11 | #> 12 | [cmdletbinding()] 13 | param( 14 | [Parameter(Mandatory=$true)][string]$username, 15 | [Parameter(Mandatory=$true)][string]$team 16 | ) 17 | Write-Verbose 'Creating init command...'; 18 | $working_dir = "$env:USERPROFILE\fah_conf"; 19 | $conf_file = 'fah_sandbox_conf.xml'; 20 | Write-Verbose "Saved Folding@Home configuration file to $working_dir\$conf_file"; 21 | New-Item -Force -Path "$working_dir\$conf_file" -ItemType File | Out-Null; 22 | Set-Content -Path "$working_dir\$conf_file" -Value @" 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | "@; 34 | } 35 | -------------------------------------------------------------------------------- /Folding In Sandbox/Module/Private/VerifyBios.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | function VerifyBios 3 | { 4 | <# 5 | .SYNOPSIS 6 | Check BIOS 7 | .DESCRIPTION 8 | This function is used to ensure that virtualization is enbaled in BIOS. 9 | .EXAMPLE 10 | C:\> VerifyBios; 11 | #> 12 | [cmdletbinding()] 13 | [OutputType([bool])] 14 | param () 15 | # Ensure that virtualization is enbaled in BIOS. 16 | Write-Output 'Verifying that virtualization is enabled in BIOS...' 17 | if ((Get-CimInstance Win32_ComputerSystem).VirtualizationFirmwareEnabled -eq $false) { 18 | Write-Output 'ERROR: Please Enable Virtualization capabilities in your BIOS settings...' 19 | return $false 20 | } 21 | 22 | # Ensure that virtualization is enbaled in Windows 10. 23 | Write-Output 'Verifying that virtualization is enabled in Windows 10...' 24 | if ((Get-CimInstance Win32_ComputerSystem).HypervisorPresent -eq $false) { 25 | Write-Output 'ERROR: Please Enable Hyper-V in your Control Panel->Programs and Features->Turn Windows features on or off' 26 | return $false 27 | } 28 | 29 | return $true; 30 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /Folding In Sandbox/Module/Private/VerifySandbox.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | function VerifySandbox 3 | { 4 | <# 5 | .SYNOPSIS 6 | Check Windows Feature is enabled 7 | .DESCRIPTION 8 | This function is used to ensure that Windows Sandbox has been enabled 9 | .EXAMPLE 10 | C:\> VerifySandbox; 11 | #> 12 | [cmdletbinding()] 13 | [OutputType([bool])] 14 | param () 15 | Write-Verbose 'Checking to see if Windows Sandbox is installed...'; 16 | try 17 | { 18 | If ((Get-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -Online).State -ne 'Enabled') 19 | { 20 | Write-Verbose 'Windows Sandbox is not installed, attempting to install it (may require reboot)...'; 21 | if ((Enable-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -All -Online -NoRestart).RestartNeeded) 22 | { 23 | Write-Verbose 'Please reboot to finish installing Windows Sandbox, then re-run this script...' 24 | return $false; 25 | } 26 | 27 | return $true; 28 | } 29 | else 30 | { 31 | Write-Verbose 'Windows Sandbox already installed.'; 32 | return $true; 33 | } 34 | } 35 | catch 36 | { 37 | Write-Error 'ERROR: Please Enable Virtualization capabilities in your BIOS settings ,then re-run this script...'; 38 | return $false; 39 | } 40 | } -------------------------------------------------------------------------------- /Folding In Sandbox/Module/Private/GetFAH.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | function GetFAH 3 | { 4 | <# 5 | .SYNOPSIS 6 | Download the latest version of FAH 7 | .DESCRIPTION 8 | Check if the installer is present, download otherwise 9 | .EXAMPLE 10 | C:\> GetFAH; 11 | #> 12 | Write-Verbose 'Checking for latest version of foldingathome...'; 13 | $installer_url = 'https://download.foldingathome.org/releases/public/release/fah-installer/windows-10-32bit/'; 14 | 15 | # Use regex to get the latest version from the FAH website. 16 | $version = ((Invoke-WebRequest -Uri $installer_url -UseBasicParsing).Links | Where-Object {$_.href -match '^v\d+([.]\d+)?'} | ForEach-Object {[float]($_.href -replace '[^.\d]', '')} | Measure-Object -Max).Maximum; 17 | $installer = "$($installer_url)v$($version)/latest.exe"; 18 | $installer_size =(Invoke-WebRequest $installer -Method Head -UseBasicParsing).Headers.'Content-Length'; 19 | Write-Verbose "Using FAH v$version."; 20 | 21 | # Check if the installer is present, download otherwise. 22 | $working_dir = "$env:USERPROFILE\fah_conf"; 23 | $install_fname = 'folding_installer.exe'; 24 | if (!(test-path "$working_dir\$install_fname") -or (Get-ChildItem "$working_dir\$install_fname").Length -ne $installer_size ) 25 | { 26 | Remove-Item "$working_dir\$install_fname" -Force -ErrorAction SilentlyContinue; 27 | Write-Verbose "Downloading latest folding executable: $working_dir\$install_fname"; 28 | Write-Verbose "Saving to $working_dir\$install_fname..."; 29 | New-Item -ItemType Directory -Force -Path $working_dir | Out-Null; 30 | Invoke-WebRequest -Uri $installer -OutFile "$working_dir\$install_fname"; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/report-a-bug.yml: -------------------------------------------------------------------------------- 1 | name: "Report a bug" 2 | description: Report errors or unexpected behavior 3 | title: "[Bug]: " 4 | labels: [bug] 5 | 6 | body: 7 | - type: markdown 8 | attributes: 9 | value: | 10 | Please make sure to [search for existing issues](https://github.com/microsoft/Windows-Sandbox/issues) before filing a new one! 11 | 12 | - id: version 13 | type: input 14 | attributes: 15 | label: Windows Sandbox version 16 | placeholder: 17 | description: 18 | validations: 19 | required: false 20 | 21 | - id: windowsversion 22 | type: input 23 | attributes: 24 | label: Windows build number 25 | placeholder: 26 | description: | 27 | Please run `ver` or `[Environment]::OSVersion`. 28 | validations: 29 | required: false 30 | 31 | - id: othersoftware 32 | type: textarea 33 | attributes: 34 | label: Other software 35 | description: If you're reporting a bug about our interaction with other software, what software? What versions? 36 | placeholder: 37 | validations: 38 | required: false 39 | 40 | - id: repro 41 | type: textarea 42 | attributes: 43 | label: Steps to reproduce the bug 44 | placeholder: Enter detailed steps to tell us what you were doing when you encountered the bug. 45 | validations: 46 | required: true 47 | 48 | - id: expectedbehavior 49 | type: textarea 50 | attributes: 51 | label: Expected result 52 | description: If you want to include screenshots, paste them into the markdown editor below. 53 | placeholder: Tell us what you were expecting to happen. 54 | validations: 55 | required: false 56 | 57 | - id: actualbehavior 58 | type: textarea 59 | attributes: 60 | label: Actual result 61 | placeholder: Tell us what happened. 62 | validations: 63 | required: true 64 | 65 | - id: includedsysinfo 66 | type: textarea 67 | attributes: 68 | label: Included System Information 69 | validations: 70 | required: false 71 | -------------------------------------------------------------------------------- /Folding In Sandbox/Module/Public/Start.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | function Start 3 | { 4 | <# 5 | .SYNOPSIS 6 | Entry point for the process 7 | .DESCRIPTION 8 | This function is used to create and start a Sandbox instance running 9 | Fold@Home. 10 | .PARAMETER username 11 | Optional username for the Fold@Home user. 12 | .EXAMPLE 13 | C:\> Create -username 'wsandbox_anon' -team '251561'; 14 | #> 15 | [cmdletbinding()] 16 | param( 17 | [Parameter(Mandatory=$false)][string]$username='wsandbox_anon', 18 | [Parameter(Mandatory=$false)][string]$team='251561' 19 | ) 20 | try 21 | { 22 | Write-Verbose 'Start process'; 23 | $ProgressPreference = 'SilentlyContinue'; #Progress bar makes things way slower 24 | Write-Output 'Verify host system...'; 25 | $bios = VerifyBios; 26 | if (-not $bios -or $bios -eq $false) 27 | { 28 | throw 'ERROR: Please Enable Virtualization capabilities in your BIOS settings...'; 29 | } 30 | 31 | $sandbox = VerifySandbox; 32 | if (-not $sandbox -or $sandbox -eq $false) 33 | { 34 | throw 'Please reboot to finish installing Windows Sandbox, then re-run this script...'; 35 | } 36 | 37 | Write-Output 'Setup configuration...'; 38 | GetFAH; 39 | CreateFAHConf -username $username -team $team; 40 | CreateLogonScript; 41 | $config = "$env:USERPROFILE\fah_conf\fah_sandbox.wsb"; 42 | Write-Verbose "Start-Process 'C:\WINDOWS\system32\WindowsSandbox.exe' -ArgumentList '$config';"; 43 | $proc = Start-Process 'C:\WINDOWS\system32\WindowsSandbox.exe' -ArgumentList $config; 44 | do 45 | { 46 | start-sleep -Milliseconds 500; 47 | } 48 | until ($proc.HasExited); 49 | } 50 | catch 51 | { 52 | $ErrorMessage = $_.Exception.Message; 53 | Write-Error $ErrorMessage; 54 | } 55 | } -------------------------------------------------------------------------------- /Folding In Sandbox/Module/Private/CreateLogonScript.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | function CreateLogonScript 3 | { 4 | <# 5 | .SYNOPSIS 6 | Create the script that runs at logon 7 | .DESCRIPTION 8 | This script: 9 | 1. Starts the installer 10 | 2. Creates a volatile working directory 11 | 3. Copies the config into the working directory 12 | 4. Sets the firewall policies to let FAH run 13 | 5. Starts the FAH client 14 | .EXAMPLE 15 | C:\> CreateLogonScript; 16 | #> 17 | Write-Verbose 'Creating init command...' 18 | $working_dir = "$env:USERPROFILE\fah_conf"; 19 | $conf_file = 'fah_sandbox_conf.xml'; 20 | $install_fname = 'folding_installer.exe'; 21 | $logon_cmd = "$working_dir\init.cmd" 22 | $wdg_install_dir = 'C:\users\wdagutilityaccount\desktop\fah_conf' 23 | $wdg_working_dir = 'C:\users\wdagutilityaccount\desktop\fah_working_dir' 24 | Write-Verbose "Saved logon script to $logon_cmd, this will be run upon starting Sandbox." 25 | New-Item -Force -Path $logon_cmd -ItemType File | Out-Null; 26 | Set-Content -Path $logon_cmd -Value @" 27 | start $wdg_install_dir\$install_fname /S 28 | goto WAITLOOP 29 | :WAITLOOP 30 | if exist "C:\Program Files (x86)\FAHClient\FAHClient.exe" goto INSTALLCOMPLETE 31 | ping -n 6 127.0.0.1 > nul 32 | goto WAITLOOP 33 | :INSTALLCOMPLETE 34 | mkdir $wdg_working_dir 35 | cd $wdg_working_dir 36 | echo \"Copying config file to $wdg_working_dir\" 37 | copy $wdg_install_dir\$conf_file $wdg_working_dir 38 | netsh advfirewall firewall Add rule name="FAHClient" program="C:\Program Files (x86)\FAHClient\FAHClient.exe" action=allow dir=out 39 | netsh advfirewall firewall Add rule name="FAHClient" program="C:\Program Files (x86)\FAHClient\FAHClient.exe" action=allow dir=in 40 | start C:\"Program Files (x86)"\FAHClient\FAHClient.exe --config $wdg_working_dir\$conf_file 41 | "@; 42 | 43 | # Create the Sandbox configuration file with the new working dir & LogonCommand. 44 | $sandbox_conf = "$working_dir\fah_sandbox.wsb"; 45 | Write-Verbose "Creating sandbox configuration file to $sandbox_conf"; 46 | New-Item -Force -Path $sandbox_conf -ItemType File | Out-Null; 47 | Set-Content -Path $sandbox_conf -Value @" 48 | 49 | Enable 50 | 51 | 52 | $working_dir 53 | true 54 | 55 | 56 | 57 | $wdg_install_dir\init.cmd 58 | 59 | 60 | "@; 61 | } 62 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Windows Sandbox Contributor's Guide 2 | Below is our guidance for how to report issues, propose new features, and submit community repositories built on top of Windows Sandbox. 3 | 4 | ## Reporting security issues 5 | Please do not report security vulnerabilities through public GitHub issues. Instead, please report them to the Microsoft Security Response Center (MSRC). See https://github.com/microsoft/devhome/blob/main/SECURITY.md for more information. 6 | 7 | ## Filing issues 8 | 9 | ### Search existing issues 10 | Before filing a new issue, search our MSDN documentation, existing open and closed issues first. It is likely someone else has found the problem you're seeing. If you see an issue that you are 11 | facing too but don't have additional context/info to add but like to indicate that you are affected by the issue, upvote the original issue by clicking its [+😊] button and hitting 👍 (+1) icon. 12 | This way we can measure how impactful an issue is. 13 | 14 | If no existing item describes your issue/feature, great - please file a new issue: 15 | 16 | ### What type of issue do I file? 17 | - Found issues in our repository or in Windows Sandbox? __File a bug__ 18 | - Got a great idea for a new feature? __File a feature request__ 19 | - Found issues in our documentation or have a question that you don't see answered in docs, blogs, etc.? __File a documentation issue__ 20 | - Found an existing issue that describes yours? __Great - upvote and add additional commentary / info / repro-steps / etc.__ 21 | 22 | In general, when you hit "New Issue", select the type of issue closest to what you want to report/ask/request. 23 | 24 | ### Complete the issue template 25 | Complete the information requested in the issue template, providing as much information as possible. The more information you provide, the more likely your issue/ask will be understood and implemented. 26 | 27 | A well written issue includes the following: 28 | - Issue title is descriptive and short 29 | - Windows version and build number. This can be gathered from the CMD prompt using the `cmd.exe --version` command. 30 | - Device information (including CPU type, memory, disk etc.) 31 | - Detailed repro steps. We LOVE detailed repro steps! What steps do we need to take to reproduce the issue? Assume we love to read repro steps. As much detail as you can stand is probably barely enough detail for us! We prefer error message text where possible or screenshots of errors if text cannot be captured. 32 | - Behavior you were expecting 33 | 34 | ### Closing issues 35 | Issues and discussions may be closed by the original poster at any time. We will close issues if: 36 | - The issue has been addressed 37 | - The issue is a duplicate of another issue 38 | - Discussions or questions that have ran their course 39 | 40 | ## Contributing to Windows Sandbox Community developed add-ons and tools 41 | If you have developed a tool that leverages Windows Sandbox, submit a PR for us to manually review. 42 | 43 | 44 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). 40 | 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | illustration showing Windows Sandbox being secure and easy to use 2 | 3 | # Welcome to the Windows Sandbox repo! 4 | 5 | Windows Sandbox (WSB) provides a lightweight desktop environment to safely run applications in isolation. This feature provides a safe and secure space for testing and debugging apps, exploring unknown files, or experimenting with tools. Software installed inside the Windows Sandbox environment remains isolated from the host machine with hypervisor-based-virtualization. 6 | 7 | Windows Sandbox offers the following features: 8 | - Part of Windows: Everything required for this feature is included in the supported Windows SKUs like Pro, Enterprise and Education. There's no need to maintain a separate VM installation. 9 | - Disposable: Nothing persists on the device. Everything is discarded when the user closes the application. 10 | - Pristine: Every time Windows Sandbox runs, it's as clean as a brand-new installation of Windows. 11 | - Secure: Uses hardware-based virtualization for kernel isolation. It relies on the Microsoft hypervisor to run a separate kernel that isolates Windows Sandbox from the host. 12 | - Efficient: Takes a few seconds to launch, supports virtual GPU and has smart memory management that optimizes memory footprint. 13 | 14 | If you want to learn more about how Windows Sandbox, check out our [documentation](https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview). 15 | 16 | ### What is this repo for? 17 | 18 | This repository is for: 19 | - Links to add-ons and tools that leverage Windows Sandbox developed by Microsoft team and our awesome developer community. 20 | - Reporting issues or suggesting new features found when using Windows Sandbox. 21 | 22 | Please read our [Contributor's Guide](https://github.com/microsoft/Windows-Sandbox/blob/master/CONTRIBUTING.md) for more information. 23 | 24 | ## Windows Sandbox Resources 25 | 26 | 27 | ### Community Windows Sandbox projects 28 | 29 | Here is a list of great repositories made by the community - feel free to browse through them and contribute where you can! 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |
NameOwnerDescription
GUI ToolsRun in Sandbox Context MenuDamien Van RobaeysAdds right-click context menus for running scripts, applications, and more in Windows Sandbox
UtilitiesPyWinSandboxYiftach KarkasonPython library to create and control Windows Sandboxes with RPyC & Simple CLI Utilities.
55 | 56 | 57 | ## Code of conduct 58 | 59 | This project welcomes contributions and suggestions. Most contributions require you to agree to a 60 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us 61 | the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. 62 | 63 | When you submit a pull request, a CLA bot will automatically determine whether you need to provide 64 | a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions 65 | provided by the bot. You will only need to do this once across all repos using our CLA. 66 | 67 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 68 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or 69 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 70 | 71 | ## Trademarks 72 | This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark and Brand Guidelines]([url](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general)). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third-parties' policies. 73 | 74 | -------------------------------------------------------------------------------- /Folding In Sandbox/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | page_type: sample 3 | languages: 4 | - powershell 5 | products: 6 | - Windows Sandbox 7 | description: "Public repository for helpful Windows Sandbox scripts and utilites" 8 | --- 9 | 10 | # Folding In Sandbox 11 | 12 | Use Windows Sandbox to develop a Hyper-V isolated environment dedicated to the [Folding@Home](https://foldingathome.org/) client. Configure Windows Sandbox to automatically install the client and test a multitude of different Folding@Home features. 13 | 14 | Provided in this project is an install script you can run on your host computer that will: 15 | 16 | 1. Check Windows Sandbox is enabled on the host. If it is not, the script will enable it (restart required). 17 | - Note that Windows Sandbox is only supported on Windows 10 Pro or Enterprise Insider build 18362 or newer. More info available [here](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-sandbox/windows-sandbox-overview). 18 | 2. Download the latest Folding@Home installer for Windows. 19 | 3. Generate the Folding@Home configuration file. This contains some default configurations that allow Folding@Home in the sandbox to start immediately. 20 | 4. Create the init.cmd script to be run within the sandbox. This script runs the Folding@Home installer in silent mode and then starts Folding@Home in a temporary working directory. 21 | 4. Generate a Windows Sandbox [configuration file](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-sandbox/windows-sandbox-configure-using-wsb-file). 22 | - The folder containing the Folding@Home installer and configuration file is mapped as a read-only folder to the sandbox. 23 | - Sets init.cmd as the logon script to be run after initialization of the sandbox 24 | 5. Starts Windows Sandbox using the .wsb configuration file. 25 | 26 | **Note:** Due to increased interest from the community with the COVID-19 outbreak, the Folding@Home assignment servers are under a lot of pressure. It may take some time to receive a work unit so make sure to leave the client running while waiting for an assignment. 27 | 28 | ## Contents 29 | 30 | | File/folder | Description | 31 | |-------------------|--------------------------------------------| 32 | | `install_folding_sandbox_on_host.ps1` | All-in-one install & run script for Folding in Sandbox | 33 | 34 | ## Prerequisites 35 | 36 | The [install_folding_sandbox_on_host.ps1](install_folding_sandbox_on_host.ps1) script, and a host computer running Windows 10 Pro or Enterprise Insider build 18362 or newer should be all you need to get started. This script does require administrative permissions, purely so it can check for and enable Windows Sandbox automatically. 37 | 38 | ## Setup 39 | 40 | You must first ensure that virtualization is enabled on your machine: 41 | - If you are using a physical machine, ensure virtualization capabilities are enabled in the BIOS. 42 | - If you are using a virtual machine, enable nested virtualization with this PowerShell cmdlet: 43 | 44 | ```Set-VMProcessor -VMName -ExposeVirtualizationExtensions $true``` 45 | 46 | The [install_folding_sandbox_on_host.ps1](install_folding_sandbox_on_host.ps1) script will enable Windows Sandbox for you, so the only thing you'll need to do from here is reboot when asked to. 47 | 48 | ## Running the sample 49 | 50 | To run the script, open command prompt or powershell as an administrator and enter the following: 51 | 52 | ```Powershell.exe -ExecutionPolicy Bypass -File .\install_folding_sandbox_on_host.ps1``` 53 | 54 | If you want to pass in your username you can add the -username option: 55 | 56 | ```Powershell.exe -ExecutionPolicy Bypass -File .\install_folding_sandbox_on_host.ps1 -username ``` 57 | 58 | And you're off! Feel free to submit work items or pull requests to this repository if you have any problems, ideas, or suggestions! 59 | 60 | ## Key concepts 61 | 62 | Finding the cure for a disease is a complex process formed through a series of large scientific efforts. Modern advancements in both medical and computational technologies have alleviated several burdens that slow down the process of understanding how a disease works. In most cases it boils down to understanding the structure and behavior of life's fundamental building block: proteins. The chemical composition and shape of a protein define its behavior, and interactions between proteins form the intricate systems that constitute a living organism. 63 | 64 | Modern technology has enabled us to rapidly characterize the chemical composition of proteins. This, however, only gives us half the picture in understanding how a protein function. Once a chain of amino acids develops, it does not form a protein until it collapses into its functional state. The transition into this state is called folding and is dependent on both the type and sequence of amino acids that make up the protein. The complexity of this crucial process poses a massive computational challenge that the world is just starting to solve. 65 | 66 | [Folding@Home](https://foldingathome.org/) is one of the largest efforts to solve the computational problem of protein folding. It utilizes a globally distributed network of computers - whether it be your own home computer or a server living in a data center. It can be installed by anyone anywhere and contributes to the greater cause of understanding how certain diseases work, and what we can do to minimize their impact. Right now, the group is [managing an effort](https://foldingathome.org/2020/03/15/coronavirus-what-were-doing-and-how-you-can-help-in-simple-terms/) to simulate the dynamics of COVID-19 proteins in the search for new therapeutic solutions. For more information, be sure to visit the [Folding@Home Knowledge Base](https://foldingathome.org/dig-deeper/). 67 | -------------------------------------------------------------------------------- /Folding In Sandbox/install_folding_sandbox_on_host.ps1: -------------------------------------------------------------------------------- 1 | #Requires -RunAsAdministrator 2 | 3 | #For a custom username, add -username to the command execution 4 | param( 5 | [string]$username = 'wsandbox_anon', 6 | [string]$team = '251561' 7 | ) 8 | $ProgressPreference = 'SilentlyContinue' #Progress bar makes things way slower 9 | 10 | # Ensure that virtualization is enbaled in BIOS. 11 | Write-Output 'Verifying that virtualization is enabled in BIOS...' 12 | if ((Get-CimInstance Win32_ComputerSystem).VirtualizationFirmwareEnabled -eq $false) { 13 | Write-Output 'ERROR: Please Enable Virtualization capabilities in your BIOS settings...' 14 | exit 15 | } 16 | 17 | # Ensure that virtualization is enbaled in Windows 10. 18 | Write-Output 'Verifying that virtualization is enabled in Windows 10...' 19 | if ((Get-CimInstance Win32_ComputerSystem).HypervisorPresent -eq $false) { 20 | Write-Output 'ERROR: Please Enable Hyper-V in your Control Panel->Programs and Features->Turn Windows features on or off' 21 | exit 22 | } 23 | 24 | # Determine if Windows Sandbox is enabled. 25 | try{ 26 | Write-Output 'Checking to see if Windows Sandbox is installed...' 27 | If ((Get-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -Online).State -ne 'Enabled') { 28 | Write-Output 'Windows Sandbox is not installed, attempting to install it (may require reboot)...' 29 | if ((Enable-WindowsOptionalFeature -FeatureName 'Containers-DisposableClientVM' -All -Online -NoRestart).RestartNeeded) { 30 | Write-Output 'Please reboot to finish installing Windows Sandbox, then re-run this script...' 31 | exit 32 | } 33 | } else { 34 | Write-Output 'Windows Sandbox already installed.' 35 | } 36 | }catch{ 37 | Write-Output 'ERROR: Please Enable Virtualization capabilities in your BIOS settings ,then re-run this script...' 38 | exit 39 | } 40 | 41 | # Download the latest version of FAH. 42 | Write-Output 'Checking for latest version of foldingathome...' 43 | $installer_url = 'https://download.foldingathome.org/releases/public/release/fah-installer/windows-10-32bit/' 44 | 45 | # Use regex to get the latest version from the FAH website. 46 | $version = ((Invoke-WebRequest -Uri $installer_url -UseBasicParsing).Links | Where-Object {$_.href -match '^v\d+([.]\d+)?'} | ForEach-Object {($_.href -replace '[^.\d]', '')} | Measure-Object -Max).Maximum 47 | $installer = "$($installer_url)v$($version)/latest.exe" 48 | $installer_size =(Invoke-WebRequest $installer -Method Head -UseBasicParsing).Headers.'Content-Length' 49 | Write-Output "Using FAH v$version." 50 | 51 | # Check if the installer is present, download otherwise. 52 | $working_dir = "$env:USERPROFILE\fah_conf" 53 | $install_fname = 'folding_installer.exe' 54 | If (!(test-path "$working_dir\$install_fname") -or (Get-ChildItem "$working_dir\$install_fname").Length -ne $installer_size ) { 55 | Remove-Item "$working_dir\$install_fname" -Force -ErrorAction SilentlyContinue 56 | Write-Output "Downloading latest folding executable: $working_dir\$install_fname" 57 | Write-Output "Saving to $working_dir\$install_fname..." 58 | New-Item -ItemType Directory -Force -Path $working_dir | Out-Null 59 | Invoke-WebRequest -Uri $installer -OutFile "$working_dir\$install_fname" 60 | } 61 | 62 | # Create the FAH configuration file with the Windows Sandbox FAH team #251561. 63 | Write-Output 'Creating init command...' 64 | $conf_file = 'fah_sandbox_conf.xml' 65 | Write-Output "Saved Folding@Home configuration file to $working_dir\$conf_file" 66 | New-Item -Force -Path "$working_dir\$conf_file" -ItemType File 67 | Set-Content -Path "$working_dir\$conf_file" -Value @" 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | "@ 79 | 80 | <# 81 | Create the script that runs at logon. This script: 82 | 1. Starts the installer 83 | 2. Creates a volatile working directory 84 | 3. Copies the config into the working directory 85 | 4. Sets the firewall policies to let FAH run 86 | 5. Starts the FAH client 87 | #> 88 | Write-Output 'Creating init command...' 89 | $logon_cmd = "$working_dir\init.cmd" 90 | $wdg_install_dir = 'C:\users\wdagutilityaccount\desktop\fah_conf' 91 | $wdg_working_dir = 'C:\users\wdagutilityaccount\desktop\fah_working_dir' 92 | Write-Output "Saved logon script to $logon_cmd, this will be run upon starting Sandbox." 93 | New-Item -Force -Path $logon_cmd -ItemType File 94 | Set-Content -Path $logon_cmd -Value @" 95 | start $wdg_install_dir\$install_fname /S 96 | goto WAITLOOP 97 | 98 | :WAITLOOP 99 | if exist "C:\Program Files (x86)\FAHClient\FAHClient.exe" goto INSTALLCOMPLETE 100 | ping -n 6 127.0.0.1 > nul 101 | goto WAITLOOP 102 | 103 | :INSTALLCOMPLETE 104 | mkdir $wdg_working_dir 105 | cd $wdg_working_dir 106 | echo \"Copying config file to $wdg_working_dir\" 107 | copy $wdg_install_dir\$conf_file $wdg_working_dir 108 | netsh advfirewall firewall Add rule name="FAHClient" program="C:\Program Files (x86)\FAHClient\FAHClient.exe" action=allow dir=out 109 | netsh advfirewall firewall Add rule name="FAHClient" program="C:\Program Files (x86)\FAHClient\FAHClient.exe" action=allow dir=in 110 | start C:\"Program Files (x86)"\FAHClient\FAHClient.exe --config $wdg_working_dir\$conf_file 111 | "@ 112 | 113 | # Create the Sandbox configuration file with the new working dir & LogonCommand. 114 | $sandbox_conf = "$working_dir\fah_sandbox.wsb" 115 | Write-Output "Creating sandbox configuration file to $sandbox_conf" 116 | New-Item -Force -Path $sandbox_conf -ItemType File 117 | Set-Content -Path $sandbox_conf -Value @" 118 | 119 | Enable 120 | 121 | 122 | $working_dir 123 | true 124 | 125 | 126 | 127 | $wdg_install_dir\init.cmd 128 | 129 | 130 | "@ 131 | 132 | # For convenience, start the Sandbox. 133 | Write-Output 'Starting sandbox...' 134 | Start-Process 'C:\WINDOWS\system32\WindowsSandbox.exe' -ArgumentList $sandbox_conf 135 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Aa][Rr][Mm]/ 27 | [Aa][Rr][Mm]64/ 28 | bld/ 29 | [Bb]in/ 30 | [Oo]bj/ 31 | [Ll]og/ 32 | [Ll]ogs/ 33 | 34 | # Visual Studio 2015/2017 cache/options directory 35 | .vs/ 36 | # Uncomment if you have tasks that create the project's static files in wwwroot 37 | #wwwroot/ 38 | 39 | # Visual Studio 2017 auto generated files 40 | Generated\ Files/ 41 | 42 | # MSTest test Results 43 | [Tt]est[Rr]esult*/ 44 | [Bb]uild[Ll]og.* 45 | 46 | # NUnit 47 | *.VisualState.xml 48 | TestResult.xml 49 | nunit-*.xml 50 | 51 | # Build Results of an ATL Project 52 | [Dd]ebugPS/ 53 | [Rr]eleasePS/ 54 | dlldata.c 55 | 56 | # Benchmark Results 57 | BenchmarkDotNet.Artifacts/ 58 | 59 | # .NET Core 60 | project.lock.json 61 | project.fragment.lock.json 62 | artifacts/ 63 | 64 | # StyleCop 65 | StyleCopReport.xml 66 | 67 | # Files built by Visual Studio 68 | *_i.c 69 | *_p.c 70 | *_h.h 71 | *.ilk 72 | *.meta 73 | *.obj 74 | *.iobj 75 | *.pch 76 | *.pdb 77 | *.ipdb 78 | *.pgc 79 | *.pgd 80 | *.rsp 81 | *.sbr 82 | *.tlb 83 | *.tli 84 | *.tlh 85 | *.tmp 86 | *.tmp_proj 87 | *_wpftmp.csproj 88 | *.log 89 | *.vspscc 90 | *.vssscc 91 | .builds 92 | *.pidb 93 | *.svclog 94 | *.scc 95 | 96 | # Chutzpah Test files 97 | _Chutzpah* 98 | 99 | # Visual C++ cache files 100 | ipch/ 101 | *.aps 102 | *.ncb 103 | *.opendb 104 | *.opensdf 105 | *.sdf 106 | *.cachefile 107 | *.VC.db 108 | *.VC.VC.opendb 109 | 110 | # Visual Studio profiler 111 | *.psess 112 | *.vsp 113 | *.vspx 114 | *.sap 115 | 116 | # Visual Studio Trace Files 117 | *.e2e 118 | 119 | # TFS 2012 Local Workspace 120 | $tf/ 121 | 122 | # Guidance Automation Toolkit 123 | *.gpState 124 | 125 | # ReSharper is a .NET coding add-in 126 | _ReSharper*/ 127 | *.[Rr]e[Ss]harper 128 | *.DotSettings.user 129 | 130 | # TeamCity is a build add-in 131 | _TeamCity* 132 | 133 | # DotCover is a Code Coverage Tool 134 | *.dotCover 135 | 136 | # AxoCover is a Code Coverage Tool 137 | .axoCover/* 138 | !.axoCover/settings.json 139 | 140 | # Visual Studio code coverage results 141 | *.coverage 142 | *.coveragexml 143 | 144 | # NCrunch 145 | _NCrunch_* 146 | .*crunch*.local.xml 147 | nCrunchTemp_* 148 | 149 | # MightyMoose 150 | *.mm.* 151 | AutoTest.Net/ 152 | 153 | # Web workbench (sass) 154 | .sass-cache/ 155 | 156 | # Installshield output folder 157 | [Ee]xpress/ 158 | 159 | # DocProject is a documentation generator add-in 160 | DocProject/buildhelp/ 161 | DocProject/Help/*.HxT 162 | DocProject/Help/*.HxC 163 | DocProject/Help/*.hhc 164 | DocProject/Help/*.hhk 165 | DocProject/Help/*.hhp 166 | DocProject/Help/Html2 167 | DocProject/Help/html 168 | 169 | # Click-Once directory 170 | publish/ 171 | 172 | # Publish Web Output 173 | *.[Pp]ublish.xml 174 | *.azurePubxml 175 | # Note: Comment the next line if you want to checkin your web deploy settings, 176 | # but database connection strings (with potential passwords) will be unencrypted 177 | *.pubxml 178 | *.publishproj 179 | 180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 181 | # checkin your Azure Web App publish settings, but sensitive information contained 182 | # in these scripts will be unencrypted 183 | PublishScripts/ 184 | 185 | # NuGet Packages 186 | *.nupkg 187 | # NuGet Symbol Packages 188 | *.snupkg 189 | # The packages folder can be ignored because of Package Restore 190 | **/[Pp]ackages/* 191 | # except build/, which is used as an MSBuild target. 192 | !**/[Pp]ackages/build/ 193 | # Uncomment if necessary however generally it will be regenerated when needed 194 | #!**/[Pp]ackages/repositories.config 195 | # NuGet v3's project.json files produces more ignorable files 196 | *.nuget.props 197 | *.nuget.targets 198 | 199 | # Microsoft Azure Build Output 200 | csx/ 201 | *.build.csdef 202 | 203 | # Microsoft Azure Emulator 204 | ecf/ 205 | rcf/ 206 | 207 | # Windows Store app package directories and files 208 | AppPackages/ 209 | BundleArtifacts/ 210 | Package.StoreAssociation.xml 211 | _pkginfo.txt 212 | *.appx 213 | *.appxbundle 214 | *.appxupload 215 | 216 | # Visual Studio cache files 217 | # files ending in .cache can be ignored 218 | *.[Cc]ache 219 | # but keep track of directories ending in .cache 220 | !?*.[Cc]ache/ 221 | 222 | # Others 223 | ClientBin/ 224 | ~$* 225 | *~ 226 | *.dbmdl 227 | *.dbproj.schemaview 228 | *.jfm 229 | *.pfx 230 | *.publishsettings 231 | orleans.codegen.cs 232 | 233 | # Including strong name files can present a security risk 234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 235 | #*.snk 236 | 237 | # Since there are multiple workflows, uncomment next line to ignore bower_components 238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 239 | #bower_components/ 240 | 241 | # RIA/Silverlight projects 242 | Generated_Code/ 243 | 244 | # Backup & report files from converting an old project file 245 | # to a newer Visual Studio version. Backup files are not needed, 246 | # because we have git ;-) 247 | _UpgradeReport_Files/ 248 | Backup*/ 249 | UpgradeLog*.XML 250 | UpgradeLog*.htm 251 | ServiceFabricBackup/ 252 | *.rptproj.bak 253 | 254 | # SQL Server files 255 | *.mdf 256 | *.ldf 257 | *.ndf 258 | 259 | # Business Intelligence projects 260 | *.rdl.data 261 | *.bim.layout 262 | *.bim_*.settings 263 | *.rptproj.rsuser 264 | *- [Bb]ackup.rdl 265 | *- [Bb]ackup ([0-9]).rdl 266 | *- [Bb]ackup ([0-9][0-9]).rdl 267 | 268 | # Microsoft Fakes 269 | FakesAssemblies/ 270 | 271 | # GhostDoc plugin setting file 272 | *.GhostDoc.xml 273 | 274 | # Node.js Tools for Visual Studio 275 | .ntvs_analysis.dat 276 | node_modules/ 277 | 278 | # Visual Studio 6 build log 279 | *.plg 280 | 281 | # Visual Studio 6 workspace options file 282 | *.opt 283 | 284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 285 | *.vbw 286 | 287 | # Visual Studio LightSwitch build output 288 | **/*.HTMLClient/GeneratedArtifacts 289 | **/*.DesktopClient/GeneratedArtifacts 290 | **/*.DesktopClient/ModelManifest.xml 291 | **/*.Server/GeneratedArtifacts 292 | **/*.Server/ModelManifest.xml 293 | _Pvt_Extensions 294 | 295 | # Paket dependency manager 296 | .paket/paket.exe 297 | paket-files/ 298 | 299 | # FAKE - F# Make 300 | .fake/ 301 | 302 | # CodeRush personal settings 303 | .cr/personal 304 | 305 | # Python Tools for Visual Studio (PTVS) 306 | __pycache__/ 307 | *.pyc 308 | 309 | # Cake - Uncomment if you are using it 310 | # tools/** 311 | # !tools/packages.config 312 | 313 | # Tabs Studio 314 | *.tss 315 | 316 | # Telerik's JustMock configuration file 317 | *.jmconfig 318 | 319 | # BizTalk build output 320 | *.btp.cs 321 | *.btm.cs 322 | *.odx.cs 323 | *.xsd.cs 324 | 325 | # OpenCover UI analysis results 326 | OpenCover/ 327 | 328 | # Azure Stream Analytics local run output 329 | ASALocalRun/ 330 | 331 | # MSBuild Binary and Structured Log 332 | *.binlog 333 | 334 | # NVidia Nsight GPU debugger configuration file 335 | *.nvuser 336 | 337 | # MFractors (Xamarin productivity tool) working folder 338 | .mfractor/ 339 | 340 | # Local History for Visual Studio 341 | .localhistory/ 342 | 343 | # BeatPulse healthcheck temp database 344 | healthchecksdb 345 | 346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 347 | MigrationBackup/ 348 | 349 | # Ionide (cross platform F# VS Code tools) working folder 350 | .ionide/ 351 | --------------------------------------------------------------------------------