Win10Debloat
Win10Debloat is a simple and lightweight powershell script that removes pre-installed windows 10/11 bloatware apps, disables telemetry and declutters the experience by disabling or removing intrusive interface elements, ads and context menu items. No need to painstakingly go through all the settings yourself, or removing apps one by one. Win10Debloat makes the process quick and simple!
You can pick and choose exactly which modifications you want the script to make, but the default settings should be fine for most people. All of the changes can be easily reverted using the registry files that are included in the ‘Regfiles’ folder, and all of the apps that are removed by default can be reinstalled from the microsoft store.
The windows 10 default settings will:
- Remove all bloatware apps from this list.
- Disable telemetry, diagnostic data & targeted ads.
- Disable bing & cortana in windows search.
- Disable tips & tricks on the lockscreen. (This may change your lockscreen wallpaper to the windows default)
- Disable tips, tricks and suggestions in the startmenu and settings, and sync provider ads in windows explorer.
- Hide the Chat (meet now) & Widget (news and interests) icons from the taskbar.
- Hide the 3D objects folder under ‘This pc’ in windows explorer.
- Disable the ‘Include in library’ from context menu.
- Disable the ‘Give access to’ from context menu.
- Disable the ‘Share’ from context menu. (Does not remove the onedrive share option)
The windows 11 default settings will:
- Remove all bloatware apps from this list.
- Disable telemetry, diagnostic data & targeted ads.
- Disable bing & cortana in windows search.
- Disable tips & tricks on the lockscreen. (This may change your lockscreen wallpaper to the windows default)
- Disable tips, tricks and suggestions in the startmenu and settings, and sync provider ads in windows explorer.
- Hide the Chat & Widget icons from the taskbar.
Or select the ‘Custom’ option in the menu to customize the script to your needs.
Donate a cup of coffee to support my work
Usage
Disclaimer: I believe this script to be completely safe to run, but use this script at your own risk!
Easy method:
- Download the latest version of the script, and extract the .ZIP file to your desired location.
- Navigate to the Win10Debloat folder
- Double click the ‘Run.bat’ file to start the script.
- Accept the windows UAC prompt to run the script as administrator, this is required for the script to function.
- Select either default, or custom setup depending on what changes you want to make. Custom setup will allow you to choose exactly which changes you want to make, and which changes you want to skip.
Advanced method:
This method gives you the option to run the script with certain arguments to tailor the behaviour of the script to your needs without requiring any user input during runtime, making it quicker and easier to deploy on a large number of systems.
- Download the latest version of the script, and extract the .ZIP file to your desired location.
- Open powershell as an administrator.
- Enable powershell execution by entering the following command:
Set-ExecutionPolicy Unrestricted -Force
- In powershell, navigate to the directory where the files were extracted. Example:
cd c:\Win10Debloat
- Enter this into powershell to run the script:
.\Win10Debloat.ps1
To run the script without any user input you can add arguments at the end, for example:.\Win10Debloat.ps1 -RemoveApps -DisableBing
Argument | Description |
---|---|
-RunDefaults | Run the script with windows 10 default settings. |
-RunWin11Defaults | Run the script with windows 11 default settings. |
-RemoveApps | Remove all bloatware apps from this list. |
-DisableTelemetry | Disable telemetry, diagnostic data & targeted ads. |
-DisableBing | Disable bing & cortana in windows search. |
-DisableLockscreenTips | Disable tips & tricks on the lockscreen. |
-DisableWindowsSuggestions | Disable tips, tricks and suggestions in the startmenu and settings, and sync provider ads in windows explorer. |
-DisableChat | Hide the chat (meet now) icon on the taskbar. |
-DisableWidgets | Hide the widget (news and interests) icon on the taskbar. |
-DisableOnedrive | Hide the onedrive folder in the windows explorer sidepanel. |
-Disable3dObjects | Hide the 3D objects folder under ‘This pc’ in windows explorer. |
-DisableMusic | Hide the music folder under ‘This pc’ in windows explorer. |
-DisableIncludeInLibrary | Disable the ‘Include in library’ option in the context menu. |
-DisableGiveAccessTo | Disable the ‘Give access to’ option in the context menu. |
-DisableShare | Disable the ‘Share’ option in the context menu. |
Debloat Windows 10/11
By default, this script only removes apps that most people are unlikely to ever need or use. You can of course customize which apps are removed by this script by editing the apps list found in the ‘Win10Debloat.ps1’ file.
These apps will be deleted by default:
- AdobeSystemsIncorporated.AdobePhotoshopExpress
- Clipchamp.Clipchamp
- Dolby
- Duolingo-LearnLanguagesforFree
- HULULLC.HULUPLUS
- Microsoft.3DBuilder
- Microsoft.549981C3F5F10 (Cortana)
- Microsoft.Asphalt8Airborne
- Microsoft.BingFinance
- Microsoft.BingNews
- Microsoft.BingSports
- Microsoft.BingTranslator
- Microsoft.BingWeather
- Microsoft.GetHelp
- Microsoft.Getstarted
- Microsoft.Messaging
- Microsoft.Microsoft3DViewer
- Microsoft.MicrosoftOfficeHub
- Microsoft.MicrosoftSolitaireCollection
- Microsoft.MicrosoftStickyNotes
- Microsoft.MixedReality.Portal
- Microsoft.NetworkSpeedTest
- Microsoft.News
- Microsoft.Office.OneNote
- Microsoft.Office.Sway
- Microsoft.OneConnect
- Microsoft.Print3D
- Microsoft.RemoteDesktop
- Microsoft.SkypeApp
- Microsoft.Todos
- Microsoft.WindowsAlarms
- Microsoft.WindowsFeedbackHub
- Microsoft.WindowsMaps
- Microsoft.WindowsSoundRecorder
- Microsoft.ZuneMusic
- Microsoft.ZuneVideo
- PandoraMediaInc
- Picsart-Photostudio
- Royal Revolt
- Speed test
- Spotify
- Wunderlist
- king.com.BubbleWitch3Saga
- king.com.CandyCrushSaga
- king.com.CandyCrushSodaSaga
These apps will NOT be deleted by default:
- Microsoft.GamingApp
- Microsoft.MSPaint (Paint 3D)
- Microsoft.People
- Microsoft.PowerAutomateDesktop
- Microsoft.ScreenSketch
- Microsoft.Windows.Photos
- Microsoft.WindowsCalculator
- Microsoft.WindowsCamera
- microsoft.windowscommunicationsapps (Mail & Calendar)
- Microsoft.WindowsStore (NOTE: This app cannot be reinstalled!)
- Microsoft.Xbox.TCUI
- Microsoft.XboxApp
- Microsoft.XboxGameOverlay
- Microsoft.XboxGamingOverlay
- Microsoft.XboxIdentityProvider
- Microsoft.XboxSpeechToTextOverlay (NOTE: This app cannot be reinstalled from the microsoft store!)
- Microsoft.YourPhone
Declutter Windows 10/11
This script can also make various changes to declutter windows 10/11, such as:
- Disable telemetry, diagnostic data & targeted ads.
- Disable bing & cortana in windows search.
- Disable tips & tricks on the lockscreen. (This changes your lockscreen wallpaper to the windows default)
- Disable tips, tricks and suggestions in the startmenu and settings, and sync provider ads in windows explorer.
- Hide the chat (meet now) icon on the taskbar.
- Hide the widget (news and interests) icon on the taskbar.
- Hide the onedrive folder in the windows explorer sidepanel.
- Hide the 3D objects folder under ‘This pc’ in windows explorer.
- Hide the music folder under ‘This pc’ in windows explorer.
- Disable the ‘Include in library’ option in the context menu.
- Disable the ‘Give access to’ option in the context menu.
- Disable the ‘Share’ from context menu. (Does not remove the onedrive share option)
All of these changes can be reverted with the registry files that are included in the ‘Regfiles’ folder.
Все способы:
- Вариант 1: Встроенные приложения
- Вариант 2: Сторонние приложения
- Восстановление стандартных приложений
- Вопросы и ответы: 2
Вариант 1: Встроенные приложения
Для того чтобы удалить предустановленное в Windows 10 приложение через консольную утилиту «PowerShell», необходимо сначала узнать наименование установочного пакета, а затем подставить его в специальную команду и выполнить ее.
- Запустите «PowerShell». Это можно сделать через поиск или контекстное меню «Пуск», которое вызывается нажатием правой кнопки мышки (ПКМ) по данному элементу, (потребуется выбрать там соответствующий пункт), а также несколькими другими способами, рассмотренными нами в отдельной статье.
Подробнее: Как запустить «ПоверШел» в Виндовс 10
Обратите внимание! Запуск в обязательном порядке необходимо осуществлять от имени Администратора, что потребуется подтвердить в отдельном окне.
- Скопируйте представленную ниже команду и вставьте ее в консоль, кликнув для этого ПКМ. Для подтверждения нажмите «Enter».
Get-AppxPackage | Select Name, PackageFullName
- Практически сразу в «ПоверШел» отобразится список всех предустановленных программ.
Нас интересует то, что указано в колонке «Name», так как именно это значение потребуется подставлять в следующего вида команду:
Get-AppxPackage *Name* | Remove-AppxPackage
Например, чтобы удалить Skype, следует ввести и выполнить в «PowerShell» вот такой запрос:
Get-AppxPackage *Microsoft.SkypeApp* | Remove-AppxPackage
Указанное внутри символов
**
«Name» мы заменили на «Microsoft.SkypeApp» (без кавычек), соответствующее зарезервированному в системе названию программы.Команды для удаления приложений выглядят следующим образом:
Компонент Команда для удаления Office Get-AppxPackage *officehub* | Remove-AppxPackage Карты Get-AppxPackage *WindowsMaps* | Remove-AppxPackage Люди Get-AppxPackage *People* | Remove-AppxPackage Для того чтобы убедиться в эффективности рассматриваемой процедуры, достаточно открыть меню «Пуск» —
указанные выше, уже удаленные нами приложения исчезли из списка установленных в операционной системе.
Далее просто приведем список команд, с помощью которых можно деинсталлировать большинство стандартных для Windows 10 программ.
Обратите внимание! Удалять Microsoft Store категорически не рекомендуется, это может и скорее всего негативно скажется на функционировании операционной системы и ее компонентов.
Читайте также: Как установить Магазин приложений в Виндовс 10
Компонент | Команда для удаления |
---|---|
3D Builder | Get-AppxPackage *3dbuilder* | Remove-AppxPackage |
3D-просмотр | Get-AppxPackage *Microsoft3DViewer* | Remove-AppxPackage |
Candy Crush Soda Saga | Get-AppxPackage *CandyCrushSodaSaga* | Remove-AppxPackage |
Get-AppxPackage *Facebook* | Remove-AppxPackage | |
Microsoft Solitaire Collection | Get-AppxPackage *MicrosoftSolitaireCollection* | Remove-AppxPackage |
Microsoft Store (не рекомендуется удалять) | Get-AppxPackage *WindowsStore* | Remove-AppxPackage |
Minecraft: Windows 10 Edition | Get-AppxPackage *MinecraftUWP* | Remove-AppxPackage |
Netflix | Get-AppxPackage *Netflix* | Remove-AppxPackage |
OneNote | Get-AppxPackage *OneNote* | Remove-AppxPackage |
Paint 3D | Get-AppxPackage *MSPaint* | Remove-AppxPackage |
Xbox | Get-AppxPackage *XboxApp* | Remove-AppxPackage |
Будильник и часы | Get-AppxPackage *WindowsAlarms* | Remove-AppxPackage |
Записки | Get-AppxPackage *MicrosoftStickyNotes* | Remove-AppxPackage |
Запись голоса | Get-AppxPackage *soundrecorder* | Remove-AppxPackage |
Калькулятор | Get-AppxPackage *WindowsCalculator* | Remove-AppxPackage |
Камера | Get-AppxPackage *WindowsCamera* | Remove-AppxPackage |
Кино и ТВ | Get-AppxPackage *ZuneVideo* | Remove-AppxPackage |
Музыка Groove | Get-AppxPackage *ZuneMusic* | Remove-AppxPackage |
Начало работы | Get-AppxPackage *getstarted* | Remove-AppxPackage |
Новости | Get-AppxPackage *BingNews* | Remove-AppxPackag |
Погода | Get-AppxPackage *bingweather* | Remove-AppxPackage |
Почта и Календарь | Get-AppxPackage *windowscommunicationsapps* | Remove-AppxPackage |
Связь с телефоном | Get-AppxPackage *windowsphone* | Remove-AppxPackage |
Советы | Get-AppxPackage *Getstarted* | Remove-AppxPackage |
Спорт | Get-AppxPackage *bingsports* | Remove-AppxPackage |
Финансы | Get-AppxPackage *bingfinance* | Remove-AppxPackage |
Фотографии | Get-AppxPackage *Photos* | Remove-AppxPackage |
Центр отзывов | Get-AppxPackage *WindowsFeedbackHub* | Remove-AppxPackage |
Читайте также: Как удалить Cortana / Microsoft Edge / OneDrive через «PowerShell» в Windows 10
Вариант 2: Сторонние приложения
С помощью «PowerShell» также можно удалить и некоторые программы от сторонних разработчиков, однако стоит иметь в виду, что консольная утилита (по сути – служебная команда), которая будет использоваться для решения данной задачи, на сегодняшний день считается устаревшей. Windows 10, начиная с версии 21H1, поддерживает ее лишь частично. Выражается это в том, что система обнаружит и отобразит далеко не полный список установленного ПО, а значит, в нем вполне может не оказаться того, от чего вы хотите избавиться.
- Запустите «ПоверШел» от имени администратора.
- Поочередно введите две указанных ниже команды, оба раза нажимая «Enter» для их выполнения.
wmic
product get name
Подождите несколько секунд, пока Виндовс обнаружит и отобразит список установленных вами приложений, которые можно удалить, после чего введите и выполните команду следующего вида:
product where name=”название программы” call uninstall
(в примере ниже нами удаляется приложение «Microsoft Update Health Tools»)
После того как вы нажмете «Enter»,
потребуется предоставить дополнительное подтверждение – ввести букву Y
и еще раз нажать клавишу «Enter» (возможно, эта строка будет отображаться в окне утилиты не полностью, а потому придется пролистать ее интерфейс немного вправо).
Примечание: Если добавить к указанной команде параметр
/nointeractive
, деинсталляция ПО будет выполнена сразу без какого-либо подтверждения.
После появления уведомления об успешном завершении процедуры появится возможность ввода новой команды. Таким образом вы сможете удалить все те ненужные программы, которые были обнаружены «ПоверШел».
Восстановление стандартных приложений
Если вы по ошибке деинсталлировали нужную стандартную для Windows 10 программу или же просто хотите восстановить все их, достаточно запустить «PowerShell» от имени администратора, ввести и выполнить одну из следующих команд:
для всех учетных записей:
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}
для текущей учетной записи:
Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}
Обратите внимание! Указанные команды можно либо ввести вручную, либо скопировать и вставить в «ПоверШел», но строго с помощью правой кнопки мышки, а не клавиш «Ctrl+V» (в противном случае, по непонятным причинам, будет изменен синтаксис).
Сама же процедура восстановления займет некоторое время и даже может завершиться с некоторыми ошибками, хотя по факту это не проблема: система будет пытаться переустановить в том числе изначально отсутствующие (например, из-за региональных ограничений) в конкретной редакции Виндовс компоненты и/или те, что используются в настоящий момент, а значит, уже установлены.
Наша группа в TelegramПолезные советы и помощь
В этой статье мы рассмотрим, как в Windows удалить установленные программы на локальном и удаленном компьютере с помощью PowerShell. Довольно часто в скриптах и сценариях автоматизации приходится использовать различные блоки кода для удаления установленных программ Windows. Для удаления программ из командной строки или скриптами PowerShell можно использовать несколько подходов.
Содержание:
- Удаление установленных программ с помощью WMI
- Удалить программу на удаленном компьютере с помощью PowerShell модуля Package Manager
- Используем менеджер пакетов WinGet для удаления установленных программ
Удаление установленных программ с помощью WMI
Чаще всего для удаления установленных программ в Windows используют команды, обращающиеся к пространству имен WMI. Например, с помощью утилиты wmic можно вывести список установленных программ:
wmic product get name,version
Для тихого удаления программы из этого списка можно использовать такую команду:
wmic product where name="VMware vCenter Converter Standalone" call uninstall /nointeractive
Команда вызовет WMI метод удаления программы VMware vCenter Converter Standalone через Windows Installer.
Executing (\\COMPName\ROOT\CIMV2:Win32_Product.IdentifyingNumber="{PROGRAM_GUID}",Name="VMware vCenter Converter Standalone",Version="6.2.0.8466193")->Uninstall()
Если удаление программы выполнено успешно, она вернет:
Method execution successful. Out Parameters: instance of __PARAMETERS { ReturnValue = 0; };
Аналогичные PowerShell команды для вывода и удаления программ через WMI:
Get-WmiObject Win32_Product | ft name,version,vendor,packagename
(Get-WmiObject Win32_Product -Filter "Name = 'XXX'").Uninstall()
Чтобы удалить программу на удаленном компьютере, нужно добавить параметр –ComputerName. Например, чтобы удалить Microsoft Office на удаленном компьютере, выполните:
$apps = Get-WmiObject -Class Win32_Product -ComputerName wks-pc11s22 |where name -Like "Office 16 Click-to-Run*"
$apps.uninstall()
Однако, такой способ удаления программы не будет универсальным. Если вы сравните список программ, который возвращается через WMI namespace и список программ в панели управления Windows 10 (команда
ms-settings:appsfeatures
), вы увидите, что они отличаются. Команда вывела список программ, установленных через Windows Installer. В списке нет большинства пользовательских программ (например, браузеров).
Также не выводятся UWP программы из Microsoft Store, установленные модули PowerShell (через PowerShellGet) и т.д.
Удалить программу на удаленном компьютере с помощью PowerShell модуля Package Manager
В современных версиях Windows 10/11 и Windows Server 2022/2019/2016 для установки и удаления программ можно использовать командлеты из модуля PowerShell Package Management. Изначально модуль использовался для установки/удаления PowerShell модулей. Однако вы можете использовать его и для удаления Win32 программ, MSU обновлений, программ установленных помощью MSI установщиков.
Чтобы вывести полный список установленных программ на локальном компьютере, выполните команду:
Get-Package
Команда вернет несколько классов программ, установленных через разные провайдеры (ProviderName). Полный список доступных провайдеров на компьютере можно вывести так:
Get-PackageProvider
- Programs
- Msi
- Msu
- PowerShellGet
- NuGet
Чтобы вывести список программ, установленных с помощью определенного провайдера, выполните:
Get-Package -ProviderName Programs -IncludeWindowsInstaller
Для удаления программы нужно использовать командлет Uninstall-Package:
Get-Package -Name "Notepad++*" | Uninstall-Package
Можно удалить установленный PowerShell модуль. Например, чтобы удалить все модули VMware.PowerCLI:
Get-Package -ProviderName PowerShellGet -Name "VMware.*" | Uninstall-Package
Для удаления программы на удаленном компьютер, воспользуйтесь командлетом Invoke-Command:
Invoke-Command -ComputerName Msk-Ser01 -ScriptBlock { Get-Package -Name "Notepad++*" | Uninstall-Package}
WinRM PowerShell Remoting можно включить на компьютерах с помощью GPO (ссылка).
Данный модуль можно использовать только для удаления программ Win32 и модулей. Для удаления UWP программ Microsoft Store нужно использовать PowerShell командлеты
Remove-AppxPackage
и
Remove-AppxProvisionedPackage
(см. Пример в статье).
Используем менеджер пакетов WinGet для удаления установленных программ
Для установки и удаления программ в Windows можно использовать новый менеджер пакетов winget (встроен в современные версии Windows 10 и 11). Чтобы вывести список программ на компьютере, выполните:
Winget list
Команда вернет список программ, в том числе установленных не через winget, а также список UWP приложений.
Для удаления программ, установленной через WinGet нужно выполнить команду:
winget uninstall --name 7zip.7zip
Для удаление MSI приложения Windows нужно указать его GUID:
winget uninstall --id "{332C1E78-1D2F-4A64-B718-68095DC6254B}"
Для удаления UWP приложения:
winget uninstall --id "Microsoft.ZuneVideo_8wekyb3d8bbwe"
Однако, winget не позволяет удалить программы на удаленном компьютере. Для запуска команд winget на удаленном компьютере нужно использовать возможности PowerShell Remoting (командлеты Invoke-Command и Enter-PSSession). Например:
Invoke-Command -ComputerName pc2122sd1 -ScriptBlock {winget uninstall --name 7zip.7zip}
Вы можете использовать рассмотренные здесь PowerShell скрипты для удаленного удаления программ, или в сценариях запуска команд на компьютерах в сети через SCCM или logon скрипты GPO.
Время на прочтение5 мин
Количество просмотров29K
Пришло время выложить из закромов очередной скрипт для системных администраторов. Заготовки для работы с пакетами обновлений и компонентами системы выкладывались в предыдущих статьях. Сегодня Я поделюсь готовым решением, которое можно без доработок применять в работе. Как известно, компания Microsoft решила последовать примеру Google и открыла свой маркет приложений, под названием Магазин Windows. В дистрибутивах ОС начиная c Windows 8 появились приложения нового типа (формат файлов распространения — AppX), которые являются универсальными и должны запускаться на всех устройствах под Windows. Среди предустановленных универсальных приложений лично Я не нашел ничего полезного, поэтому и написал скрипт, который удаляет их все.
Представленное здесь решение предназначено для обслуживания образов Windows 8, 8.1, 10. Может применяться как к автономным файлам образов в формате *.wim, так и к развёрнутой (установленной) системе. Как и в предыдущих моих скриптах использую средства системы DISM. Однако в ходе разработки выяснилось, что с помощью команды dism нет возможности удалить универсальные приложения из установленной системы (обслуживание онлайн) — только средствами PowerShell. Пришлось делать выбор: либо писать скрипт полностью на PS, либо использую возможности командного интерпретатора (CMD), осуществить вызов отдельных операций из PS. Я выбрал второй вариант, в связи с чем, представленное решение состоит из двух файлов: основного скрипта (сохранить с любым именем *.cmd) и дополнительного (сохранить с именем RemoveAppxes.ps1).
Основной скрипт
@echo off
title Deleting Appxes in Windows image
set _file=install.wim
set _img=Online
set _mnt=mount
dism /English /LogLevel:1 /Get-Help | find "Version: 6.1" > nul && exit
:pre_menu
cls
if not exist %_file% goto :version
dism /English /LogLevel:1 /Get-ImageInfo /ImageFile:%_file%
echo -------------------------------------------------------------------------------
if %ERRORLEVEL% NEQ 0 pause & exit
set /p _ind=Input index or press [Enter] for quit: || exit
if %_ind% EQU 0 goto :version
if %_ind% GTR 0 if %_ind% LEQ 24 goto :ind_menu
goto :pre_menu
:ind_menu
cls
dism /English /LogLevel:1 /Get-ImageInfo /ImageFile:%_file% /Index:%_ind%
echo -------------------------------------------------------------------------------
if %ERRORLEVEL% NEQ 0 pause & goto :pre_menu
choice /c abcdefghijklmnopqrstuvwxyz /n /m "Mount selected image? [m] "
if %ERRORLEVEL% EQU 13 goto :mount
goto :pre_menu
:version
dism /%_img% /English /LogLevel:1 /Get-Help | find "Image Version: 6.1" > nul && goto :unmount
goto :remove
:remove
cls
echo Getting list of Appxes. Please wait...
dism /%_img% /English /LogLevel:1 /Get-ProvisionedAppxPackages > %TEMP%\appxes.txt
echo -------------------------------------------------------------------------------
set _num=1
for /f "skip=8 tokens=3" %%a in (%TEMP%\appxes.txt) do call :filter %%a
del %TEMP%\appxes.txt
echo Removes default application associations
dism /%_img% /English /LogLevel:1 /Remove-DefaultAppAssociations
echo -------------------------------------------------------------------------------
if %_img%==Online (
echo Remove current Appxes for AllUsers
powershell -Command Start-Process powershell -ArgumentList '-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File RemoveAppxes.ps1' -Verb RunAs
)
if not exist %_file% exit
goto :unmount
:filter
echo %1 | findstr /ric:"Microsoft.*" > nul
if %ERRORLEVEL% EQU 0 call :action %1
exit /b
:action
echo %1 | findstr /ric:"Microsoft.*_" > nul
if %ERRORLEVEL% NEQ 0 (
set /a _num+=1
echo %_num% Remove: %1
) else (
dism /%_img% /English /LogLevel:1 /Remove-ProvisionedAppxPackage /PackageName:%1
echo -------------------------------------------------------------------------------
)
exit /b
:mount
cls
md %_mnt%
dism /English /LogLevel:1 /Mount-Image /ImageFile:%_file% /Index:%_ind% /MountDir:%_mnt%
if %ERRORLEVEL% NEQ 0 rd %_mnt% & pause & exit
set _img=Image:%_mnt%
goto :version
:unmount
cls
if not %_img%==Online (
dism /English /LogLevel:1 /Unmount-Image /MountDir:%_mnt% /Commit
rd %_mnt%
)
set _img=Online
goto :pre_menu
Дополнительный скрипт
Get-AppxPackage -AllUsers | Remove-AppxPackage
Использование
Два файла должны размещаться в одной папке. Если в папке запуска отсутствует файл образа — install.wim, то скрипты выполняют работу в полностью автоматическом режиме. Если в папке запуска присутствует файл образа — install.wim, то скрипт выполняет считывание из него информацию об имеющихся «индексах» и предлагает ввести номер. После этого отображается расширенная информация о выбранном «индексе» выдаётся запрос на монтирование. Нажатие любой клавиши приводит к возврату, а нажатие клавиши [m] запускает следующую цепочку действий: монтирование образа, проверка версии ОС, удаление дистрибутивов приложений (по циклу), удаление всех ассоциаций, деинсталляция установленных приложений (при запуске онлайн), размонтирование образа, возврат в меню выбора «индекса». После чего можно выбрать другой «индекс» образа для удаления приложений. Выбор «индекса» под номером 0 запускает обслуживание онлайн.
Разбор кода
Вначале командой set происходит установка переменных. Можно изменить предполагаемое имя файла образа install.wim (например, на install.esd). Можно изменить имя папки монтирования (по-умолчанию mount) или задать путь, если папка монтирования должна находится за пределами папки запуска.
:pre_menu
Предварительное меню. Получение основной информации о wim-файле с контролем ошибок. Если отсутствует файл образа, то запуск в режиме Online.
:ind_menu
Индексное меню. Получение расширенной информации о выбранном «индексе» в wim-файле с контролем ошибок. Предложение смонтировать «индекс».
:version
Проверка версии целевой системы. Если оказывается, что скрипт пытаются применить к образу Windows 7, то происходит размонтирование. Иначе, выполняется переход к следующей метке.
:remove (:filter, :action)
Основной блок выполнения скрипта. Вначале запрашивается список интегрированных универсальных приложений с сохранением во временный файл appxes.txt. Затем в цикле for из полученного списка последовательно выбираются строки и передаются в псевдофункцию :filter. Строки фильтруются поиском по регулярному выражению «Microsoft.*» — если найдена, то передаются в следующую псевдофункцию :action. Здесь по регулярному выражению «Microsoft.*_» отфильтровываются названия универсальных приложений, передаваемые в дальнейшем утилите dism для удаления. Чтобы лучше понять логику работы нужно взглянуть на содержимое файла appxes.txt. Так как файл удаляется по завершению работы цикла, то чтобы с ним ознакомиться нужно предварительно вручную его получить и сохранить.
Одной командой происходит удаление всех ассоциаций открытия отдельных файлов универсальными приложениями. Для распространённых типов файлов остаются ассоциации со стандартными классическими приложениями Windows.
Удаление (деинсталляция) универсальных приложений на установленной системе происходит вызовом составной команды на языке скриптов PowerShell. Файл дополнительного скрипта RemoveAppxes.ps1 вначале выполняет запрос списка всех универсальных приложений для всех пользователей, а затем «по конвейеру» передаёт их команде на удаление. Вроде бы ничего сложного, однако, чтобы выполнить эту операцию скрипт PS должен быть запущен с повышенными правами, причём работать от имени Администратора не достаточно. Для успешного запуска нужно вставить тот сложный код в команде powershell чтобы получить повышение прав. Защита которая легко обходится! Вот за этот «идиотизм» мне и не приглянулся PowerShell.
:mount
Монтирование образа. Предварительно создаётся папка монтирования. Контроль ошибок. Изменяется переменная определяющая спецификацию образа, теперь указывает на путь к автономному образу.
:unmount
Размонтирование образа. Если выполнялось интерактивное обслуживание (/Online), то размонтировать не нужно. Возвращение переменных к исходным значениям.
Заключение
Я показал простой и быстрый способ удаления приложений Магазина Windows. Считаю, что одно и тоже приложение не может быть одинаково удобным для использования на мобильном устройстве и на ПК. Прежде всего у названных платформ разное функциональное назначение, а значит и требуемые пользователям приложения должные предоставлять разный функционал. После отработки скрипта несколько универсальных приложений всё же остаются, прежде всего это сам Магазин Windows, с помощью которого можно установить то, что было удалено или что-то ещё.
Существует отличный способ удалить все приложения Windows 10, но сохранить Магазин Windows. Короткая команда для PowerShell все, что нужно для выполнения этой задачи.
Короткая команда, для удаления всех приложений в Windows 10, за исключением Магазина.
Шаг 1: Откройте PowerShell от имени Администратора — это имеет важное значение, в противном случае, скрипт не будет выполнен. В поиске или в меню «Пуск» начните набирать PowerShell, кликните на результат правой кнопкой мыши и выберите «Запуск от имени администратора».
Шаг 2: Введите или вставьте следующую команду:
Get-AppxPackage -AllUsers | where-object {$_.name –notlike "*store*"} | Remove-AppxPackage
Важно: Если вы скопировали строку выше, обратите внимание на двойные кавычки вокруг текста "* store *"
. Они могут быть преобразованы в браузере в «двойные кавычки», так что команда будет прервана и удалит магазин Windows 10 тоже! Если вы собираетесь скопировать команду, я предлагаю вам вручную ввести кавычки (см. картинку).
Шаг 3: Нажмите Enter, все приложения, за исключением Магазина (Windows Store) будут удалены.
Вот и все. При необходимости, Вы можете позже, повторно установить любое из удалённых приложений из магазина.
Рекомендуем: Как удалить определенное предустановленное приложение в Windows 10