Вопрос или проблема
Мне нужно провести некоторые тесты mui, и мне нужно изменить язык в песочнице Windows. Проблема в том, что невозможно перезагрузить или выйти из системы, так как это закроет и сотрет песочницу. В официальной документации нет упоминания об этом: интересно, есть ли обходной путь для этого, например, модификация мастер-образа.
Можно изменить многие настройки песочницы Windows.
Поскольку песочница Windows — это виртуальная машина, которая уничтожается при закрытии, вы должны модифицировать базовый образ самой виртуальной машины в ее .vhdx
файле.
Смотрите статью
Как настроить стандартную песочницу Windows (файлы, папки, реестр, обои) без использования файла WSB.
Вкратце:
- Подмонтируйте VHDX, остановив системную службу Windows “Служба управления контейнерами”, и дважды щелкните на
BaseLayer.vhdx
вC:\ProgramData\Microsoft\Windows\Containers\BaseImages\GUID
- Измените реестр, используя меню
regedit
Файл > Подгрузить хранилище для загрузки\Files\Users\WDAGUtilityAccount\ntuser.dat
и используйте Файл > Выгрузить хранилище по завершении.
Для всех языковых настроек в реестре смотрите:
- Где в реестре хранятся настройки языка для каждого пользователя?
- Windows 10 1809 – Реестр ключей региона/языка
- Как удалить раскладку клавиатуры в Windows 10
Возможно, будет проще настроить вашу Windows на желаемый язык и экспортировать интересующие элементы реестра, а затем импортировать эти изменения в реестр базового образа.
Как отметил @izogfif, теперь возможно перезагрузить песочницу Windows, не теряя данные (но все будет удалено при завершении работы).
НЕ нажимайте “выйти из системы”
но перезагрузите вручную
теперь возможно использовать другой язык
Это скрипт PowerShell, который делает то же самое:
powershell -Command Set-WinUILanguageOverride -Language en-US;Restart-Computer
Или, если вы хотите изменить клавиатуру, культуру и т.д.
powershell -Command Set-WinUILanguageOverride -Language en-US; Set-WinUserLanguageList en-US -Force; Set-WinSystemLocale en-US; Set-Culture en-US; Restart-Computer
Ответ или решение
Изменение языка Windows Sandbox: Поиск решения
Windows Sandbox представляет собой легковесное виртуальное окружение, предназначенное для безопасного тестирования приложений и выполнения потенциально нежелательных действий. Однако одним из часто задаваемых вопросов пользователей является возможность изменения языка интерфейса этой виртуальной среды. В данной статье мы разберем, как это можно сделать, при этом сохранять функциональность Windows Sandbox.
Проблема изменения языка
Ключевым моментом является то, что Windows Sandbox запускается с базового образа, который восстанавливается каждый раз при его закрытии. Вы не можете перезапустить или выйти из системы, так как это приведет к потере всех сделанных изменений. Таким образом, любые изменения, которые вы хотите внести, должны быть выполнены до закрытия SandBox.
Изменение языка через монтирование VHDX
Для изменения настроек языка вам потребуется модифицировать базовый образ, который содержится в файле .vhdx
. Далее представлены основные шаги для выполнения этой задачи:
-
Остановка службы Container Manager:
Вам необходимо остановить системную службу Windows "Container Manager Service". Это можно сделать через команды PowerShell или интерфейс службы. -
Монтирование файла BaseLayer.vhdx:
После остановки службы, перейдите в директориюC:\ProgramData\Microsoft\Windows\Containers\BaseImages\GUID
и дважды щелкните по файлуBaseLayer.vhdx
для его монтирования. -
Изменение реестра:
Используйте редактор реестра (regedit) для загрузки файла реестраntuser.dat
, который находится по пути\Files\Users\WDAGUtilityAccount
. Это делается через меню Файл -> Загрузить коронку, а после внесения изменений не забудьте использовать Файл -> Разгрузить коронку. -
Экспорт и импорт реестровых настроек:
Возможно, будет проще сначала изменить язык в вашей основной системе и экспортировать соответствующие параметры реестра, а затем импортировать их в реестр базового образа Windows Sandbox.
Обновление языка без сброса данных
Согласно последним обновлениям, теперь возможно перезагружать Windows Sandbox без потери данных, но учтите, что все данные будут удалены после завершения сеанса. При изменении настроек языка убедитесь, что вы не нажимаете "Выйти", так как это приведет к закрытию Sandbox. Вместо этого, выполните перезагрузку вручную.
Использование PowerShell для изменения языка
Кроме того, вы можете использовать PowerShell для изменения языка. Приведем простые команды для изменения языка интерфейса и других локализационных параметров:
powershell -Command Set-WinUILanguageOverride -Language en-US; Restart-Computer
Или, если вам необходимо изменить язык клавиатуры и другие параметры культуре:
powershell -Command Set-WinUILanguageOverride -Language en-US; Set-WinUserLanguageList en-US -Force; Set-WinSystemLocale en-US; Set-Culture en-US; Restart-Computer
Заключение
Изменение языка в Windows Sandbox возможно, но требует предварительной подготовки и специальных действий. Важно помнить, что любые изменения, сделанные в Sandbox, будут утеряны при его закрытии. Поэтому рекомендуется заранее подготавливать базовый образ или использовать описанные методы для временных изменений в рамках тестирования. Опытные пользователи могут воспользоваться PowerShell для автоматизации процесса, что сделает работу более эффективной.