Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:blog:2021:03:windows_10_sandbox_configuration

Песочница Windows 10. Тонкая настройка

Я всё чаще стал прибегать к «услугам» встроенной песочницы Windows 10, однако иногда внутри неё требуется преднастроенная среда в которой удобно работать. Благо это не так уж и сложно сделать. Ниже будет пример конфигурации с тонкой настройкой, а также установкой локалей, модулей и программ.

Собственно, не хочется много и долго расписывать процесс подготовки конфигурации песочницы, поэтому просто приложу архив со всеми файлами. Нужно просто поменять путь к данной папке (которая в архиве) в основном файле конфигурации sandbox-def.wsb. Выполнение этого файла запустить процесс запуска песочницы.

Архив с конфигурационными файлами песочницы: sandbox.zip

Особенности:

  • Добавление русского языка и определение региональных настроек
  • Установка полезных модулей PowerShell (в том числе и для формирования всплывающих окон о ходе подготовки песочницы)
  • Установка и настройка winget (прогнозирование ввода команд и запросов + включение всех экспериментальных опций)
  • Посредством winget сразу же ставим Edge, Powershell core, MS Terminal и пару необходимых программ (можно сразу добавить свои или уже непосредственно в песочнице доустановить winget'ом)

В общем пример скрипта, который настраивает и устанавливает ПО ниже. Архив со всей конфигурацией выше.

Enable-PSRemoting -Force -SkipNetworkProfileCheck
#add russian
$OldList = Get-WinUserLanguageList
$OldList.Add("ru-RU")
Set-WinUserLanguageList -LanguageList $OldList -Force
##
Set-WinHomeLocation -GeoId 203
Set-Culture ru-RU
 
#tuning
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name TaskbarSmallIcons -Value 1
Stop-Process -Name explorer
 
Install-PackageProvider -Name nuget -Force -Forcebootstrap -Scope Allusers
Update-Module PackageManagement, PowerShellGet -Force
 
#run updates and installs in the background
Start-Job { Install-Module PSScriptTools, BurntToast -Force }
#Start-Job { Install-Module PSReleaseTools -Force; Install-PowerShell -Mode Quiet -EnableRemoting -EnableContextMenu }
#Start-Job { Install-Module WTToolbox -Force ; Install-WTRelease }
#Start-Job -FilePath c:\SandBox\scripts\another-script.ps1
 
#wait for everything to finish
Get-Job | Wait-Job
 
#sandbox-toast.ps1
$params = @{
    Text    = "Step 1. Modules installed"
    Header  = $(New-BTHeader -Id 1 -Title "My Sandbox")
    Applogo = "c:\SandBox\images\progress.png"
}
 
New-BurntToastNotification @params
 
#install winget
Invoke-WebRequest 'https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx' -OutFile "$env:TEMP\VClibs.appx"
Add-AppxPackage "$env:TEMP\VClibs.appx"
 
$winget = (Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/winget-cli/releases/latest").assets.browser_download_url | Where-Object { $_ -match "appxbundle" }
Invoke-WebRequest -Uri $winget -OutFile "$env:TEMP\winget.appxbundle"
Add-AppxPackage "$env:TEMP\winget.appxbundle"
### copy config
$wingetdest = (Get-ChildItem $env:LOCALAPPDATA\Packages | Where-Object { $_.Name -match "DesktopAppInstaller" }).FullName
Copy-Item C:\SandBox\temp\settings.json -Destination $wingetdest\LocalState
 
#install apps
#sandbox-toast.ps1
$params = @{
    Text    = ""
    Header  = $(New-BTHeader -Id 2 -Title "My Sandbox")
    Applogo = "c:\SandBox\images\progress.png"
}
 
"Microsoft.Edge", "Microsoft.PowerShell", "Microsoft.WindowsTerminal", "7zip.7zipAlpha" | ForEach-Object {
    winget install $_ --silent --source winget
    $params.Text = "Step 2.x. $_ installed"
    New-BurntToastNotification @params
}
 
#profile
## for old powershell
#New-Item $PROFILE -Force
#Copy-Item -Path "c:\SandBox\temp\Microsoft.PowerShell_profile.ps1" -Destination $PROFILE
## for powershell core
Copy-Item -Path "c:\SandBox\temp\Microsoft.PowerShell_profile.ps1" -Destination "C:\Program Files\PowerShell\7\profile.ps1"
 
#sandbox-toast.ps1
$params = @{
    Text    = "Windows Sandbox configuration is complete."
    Header  = $(New-BTHeader -Id 3 -Title "My Sandbox")
    Applogo = "c:\SandBox\images\done.png"
}
 
New-BurntToastNotification @params
Только авторизованные участники могут оставлять комментарии.
docs/blog/2021/03/windows_10_sandbox_configuration.txt · Последнее изменение: 14.03.2021 21:41 — philip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki