Как бы не было много сторонников старых версий ОС, все же пришла пора переходить на Windows 10. В связи с этим предлагаю разобраться с предустановлеными Metro-приложениями. Согласитесь, мало кто будет использовать абсолютно все приложения, которые навязывает нам корпорация. Ведь большинство из них просто занимают место, а кого-то вообще раздражают. В этой статье я поделюсь с вами способом, которым можно «почистить» систему от именно таких — ненужных — приложений на Windows 10.

Удаление


Итак, перейдем к удалению ненужных приложений. Предлагаю Вам powershell скрипт, в результате выполнения которого на экран выводятся все установленные Metro-приложения, а далее дело за пользователем — удалить всё или же подойти к вопросу избирательно, удалив только некоторые из них.

Скрипт имеет следующий вид:
Function PSCustomErrorRecord
{
	Param
	(		
		[Parameter(Mandatory=$true,Position=1)][String]$ExceptionString,
		[Parameter(Mandatory=$true,Position=2)][String]$ErrorID,
		[Parameter(Mandatory=$true,Position=3)][System.Management.Automation.ErrorCategory]$ErrorCategory,
		[Parameter(Mandatory=$true,Position=4)][PSObject]$TargetObject
	)
	Process
	{
		$exception = New-Object System.Management.Automation.RuntimeException($ExceptionString)
		$customError = New-Object System.Management.Automation.ErrorRecord($exception,$ErrorID,$ErrorCategory,$TargetObject)
		return $customError
	}
}
	
Function RemoveAppxPackage
{
	$index=1
	$apps=Get-AppxPackage
	Write-Host "ID`t App name"
	foreach ($app in $apps)
	{
		Write-Host " $index`t $($app.name)"
		$index++
	}
    
    Do
    {
        $IDs=Read-Host -Prompt "Which Apps do you want to remove? `nInput their IDs by space  (e.g. 5 12 17). `nIf you want to remove every possible apps, enter 'all'"
    }
   
 While($IDs -eq "")

    if ($IDs -eq "all") {Get-AppXPackage -All | Remove-AppxPackage -ErrorAction SilentlyContinue –confirm
    	
			$AppName=($ID -ge 1 -and $ID -le $apps.name)			

			if (-not(Get-AppxPackage -Name $AppName))
			{
				Write-host "Apps has been removed successfully"
			}
			else
			{
				Write-Warning "Remove '$AppName' failed! This app is part of Windows and cannot be uninstalled on a per-user basis."
			}
    
    }

    else {
    
	try
	{	
		[int[]]$IDs=$IDs -split " "
 		
	}
       
	catch
	{
        $errorMsg = $Messages.IncorrectInput
		$errorMsg = $errorMsg -replace "Placeholder01",$IDs
		$customError = PSCustomErrorRecord `
		-ExceptionString $errorMsg `
		-ErrorCategory NotSpecified -ErrorID 1 -TargetObject $pscmdlet
		$pscmdlet.WriteError($customError)
		return
	}

	foreach ($ID in $IDs)
	{
		#check id is in the range
		if ($ID -ge 1 -and $ID -le $apps.count)
		{
			$ID--
			#Remove each app
			$AppName=$apps[$ID].name

			Remove-AppxPackage -Package $apps[$ID] -ErrorAction SilentlyContinue –confirm
			if (-not(Get-AppxPackage -Name $AppName))
			{
				Write-host "$AppName has been removed successfully"
			}
			else
			{
				Write-Warning "Remove '$AppName' failed! This app is part of Windows and cannot be uninstalled on a per-user basis."
			}
		}
		else
		{
			$errorMsg = $Messages.WrongID
			$errorMsg = $errorMsg -replace "Placeholder01",$ID
			$customError = PSCustomErrorRecord `
			-ExceptionString $errorMsg `
			-ErrorCategory NotSpecified -ErrorID 1 -TargetObject $pscmdlet
			$pscmdlet.WriteError($customError)
		}
	}
  }
}

		
		


$result = 0;

while ($result -eq 0) {

RemoveAppxPackage

$title = "Delete Apps"
$message = "Do you want to continue?"

$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
    "Yes, I want to remove another application." 

$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
    "No, all unnecessary applications are removed."

$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

$result = $host.ui.PromptForChoice($title, $message, $options, 0) 

}


Сохраните в формате .ps1 или скачайте скрипт, для упрощенного запуска от имени администратора рекомендую создать батник по скрипту ниже (сохраните в формате .bat и UAC сам запросит подтверждение прав):

Скрипт .bat
@echo off
cls
 
echo Apps
echo.
echo press any key to continue...

pause > NUL

echo
echo.

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dp0.\app.ps1""' -Verb RunAs}"

echo You deleted apps...
echo.
pause

Где app.ps1 – имя сохраненного power shell скрипта.

Примечание: при таком запуске скрипта возможно появление предупреждающего сообщения: «Execution Policy Change».



Выбирайте «Yes» — внести изменения.

В результате Вы увидите следующее:



На экране представлен список установленых приложений. И предложено перечислить, через пробел, именно те, которые Вы хотели б удалить.

Допустим, вы решили удалить «Microsoft.BingNews». Для этого введите соответствующий номер приложения, и при успешном результате вы должны получить следующее:



Обратите внимание, что системные приложения вы удалить не сможете. Об этом вас уведомит следующее сообщение:



Это справедливо для таких приложений, как:

  • Microsoft.Windows.Cortana
  • MicrosoftEdge
  • ContactSupport
  • PrintDialog и др.

Более точный список «неубиваемых» приложений на скрине ниже:



Так же есть возможность удаления сразу всех приложения (кроме вышеупомянутых), для этого вместо номера конкретного приложения введите «all», а далее лишь подтверждайте удаление всех сразу (Yes to All) или каждого по отдельности (Yes).



Восстановление


Если вы случайно удалили или же впоследствии решили пользоваться тем или иным приложением, то можно его восстановить через Windows Store или же воспользоваться следующим предложеным вариантом восстановления.

К примеру, вы хотите восстановить приложение «Store», которое, кстати, удаляется вышепредложенным скриптом, для этого необходимо от администратора запустить следующую строку в Powershell:

Add-AppxPackage -register "C:\Program Files\WindowsApps\*Store*\AppxManifest.xml" -DisableDevelopmentMode

Аналогичным способом можно восстановить другие приложения указав соответствующее имя между «*». Если же необходимо возобновить работу некоторого N-го количества, то лучше воспользоваться скриптом (удаляйте/добавляйте нужные именно вам строки):

Скрипт для восстановления приложений
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Weather*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Finance*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Maps*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*News*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Sports*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Travel*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Camera*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Reader*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Xbox*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Alarms*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Calculator*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*OneNote*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*People*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*SoundRecoder*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*3dbuilder*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Store*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Photos*\AppxManifest.xml" -DisableDevelopmentMode
Add-AppxPackage -register "C:\Program Files\WindowsApps\*Phone*\AppxManifest.xml" -DisableDevelopmentMode

Как и в предыдущем случае, сохраните скрипт, отредактируйте по-необходимости и запустите.

Или же, как вариант, если вы захотите вернуть весь комплект предустановленных утилит, введите следующую строку от имени администратора в Powershell. Так что не бойтесь экспериментировать, восстановить исходное состояние легко:

Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}

При восстановлении возможны предупреждающие сообщения, они относятся к приложениям, которые в настоящее время запущены.

Восстановление просмотрщика фотографий в Windows 10


Большинство пользователей, установив Windows 10, недовольны отсутствием приложения просмотра фотографий — Windows Photo Viewer.

Для восстановления Photo Viewer необходимо добавить некоторые ключи в реестр. Чтобы это сделать, сохраните нижеприведенный скрипт с расширением .reg и запустите. После этого выберите данное приложение для открытия изображений по-умолчанию: Settings — Default apps — Photo — Windows Photo Viewer:



Скрипт для добавления ключей в реестр:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations]
".jpg"="PhotoViewer.FileAssoc.Jpeg"
".wdp"="PhotoViewer.FileAssoc.Wdp"
".jfif"="PhotoViewer.FileAssoc.JFIF"
".dib"="PhotoViewer.FileAssoc.Bitmap"
".png"="PhotoViewer.FileAssoc.Png"
".jxr"="PhotoViewer.FileAssoc.Wdp"
".bmp"="PhotoViewer.FileAssoc.Bitmap"
".jpe"="PhotoViewer.FileAssoc.Jpeg"
".jpeg"="PhotoViewer.FileAssoc.Jpeg"
".gif"="PhotoViewer.FileAssoc.Gif"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Bitmap]
"ImageOptionFlags"=dword:00000001
"FriendlyTypeName"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,  00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,  77,00,73,00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,  00,65,00,72,00,5c,00,50,00,68,00,6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,  65,00,72,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,35,00,36,00,00,  00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Bitmap\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-70"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Bitmap\shell]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Bitmap\shell\open]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Bitmap\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,  00,31,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Bitmap\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.JFIF]
"EditFlags"=dword:00010000
"ImageOptionFlags"=dword:00000001
"FriendlyTypeName"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,  00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,  77,00,73,00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,  00,65,00,72,00,5c,00,50,00,68,00,6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,  65,00,72,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,35,00,35,00,00,  00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.JFIF\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-72"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.JFIF\shell]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.JFIF\shell\open]
"MuiVerb"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,  69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,  00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,  72,00,5c,00,70,00,68,00,6f,00,74,00,6f,00,76,00,69,00,65,00,77,00,65,00,72,  00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,34,00,33,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.JFIF\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,  00,31,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.JFIF\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Jpeg]
"EditFlags"=dword:00010000
"ImageOptionFlags"=dword:00000001
"FriendlyTypeName"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,  00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,  77,00,73,00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,  00,65,00,72,00,5c,00,50,00,68,00,6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,  65,00,72,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,35,00,35,00,00,  00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Jpeg\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-72"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Jpeg\shell]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Jpeg\shell\open]
"MuiVerb"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,  69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,  00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,  72,00,5c,00,70,00,68,00,6f,00,74,00,6f,00,76,00,69,00,65,00,77,00,65,00,72,  00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,34,00,33,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Jpeg\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,  00,31,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Jpeg\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Gif]
"ImageOptionFlags"=dword:00000001
"FriendlyTypeName"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,  00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,  77,00,73,00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,  00,65,00,72,00,5c,00,50,00,68,00,6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,  65,00,72,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,35,00,37,00,00,  00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Gif\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-83"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Gif\shell]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Gif\shell\open]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Gif\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,  00,31,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Gif\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Png]
"ImageOptionFlags"=dword:00000001
"FriendlyTypeName"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,  00,46,00,69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,  77,00,73,00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,  00,65,00,72,00,5c,00,50,00,68,00,6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,  65,00,72,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,35,00,37,00,00,  00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Png\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-71"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Png\shell]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Png\shell\open]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Png\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,  00,31,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Png\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Wdp]
"EditFlags"=dword:00010000
"ImageOptionFlags"=dword:00000001

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Wdp\DefaultIcon]
@="%SystemRoot%\\System32\\wmphoto.dll,-400"

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Wdp\shell]

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Wdp\shell\open]
"MuiVerb"=hex(2):40,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,  69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,  00,20,00,50,00,68,00,6f,00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,  72,00,5c,00,70,00,68,00,6f,00,74,00,6f,00,76,00,69,00,65,00,77,00,65,00,72,  00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,34,00,33,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Wdp\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,  6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,  00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,  25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,  00,74,00,6f,00,20,00,56,00,69,00,65,00,77,00,65,00,72,00,5c,00,50,00,68,00,  6f,00,74,00,6f,00,56,00,69,00,65,00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,  00,22,00,2c,00,20,00,49,00,6d,00,61,00,67,00,65,00,56,00,69,00,65,00,77,00,  5f,00,46,00,75,00,6c,00,6c,00,73,00,63,00,72,00,65,00,65,00,6e,00,20,00,25,  00,31,00,00,00

[HKEY_CLASSES_ROOT\PhotoViewer.FileAssoc.Wdp\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities]
"ApplicationDescription"="@%ProgramFiles%\\Windows Photo Viewer\\photoviewer.dll,-3069"
"ApplicationName"="@%ProgramFiles%\\Windows Photo Viewer\\photoviewer.dll,-3009"

Сохраняем результаты


Чтобы настройка не была напрасна и результат не исчез, рекомендую запретить автоматическую установку приложений при апдейтах в реестре.

Чтобы это сделать, необходимо залогиниться под административной учеткой, в реестре перейти: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate.

И измените значение по Вашему усмотрению (по-умолчанию 4):
2 – выключить автоматическое обновление пользовательских приложений,
4 – включить автоматическое обновление пользовательских приложений.



Или же вы можете применить следующий скрипт для изменения в реестре (также сохраните с расширением .reg и запустите):

Скрипт для запрета автоматической установки приложений при апдейтах в реестре:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate]

"AutoDownload"=dword:00000002

P.S.: Надеюсь, что предложенный вариант удаления/восстановления приложений несколько «облегчит» настойку Windows 10 на вашем ПК. Также после всех внесенных изменений рекомендую перезагрузиться.

Комментарии (16)


  1. lockywolf
    28.01.2016 13:17
    -4

    Никогда не понимал людей, удаляющих стоковый софт. Мало ли какую придётся поставить программу, которая в каком-нибудь виде их использует. Может, не сами исполняемые файлы, но так какие-нибудь недокументированные функции из разделяемых библиотек.


    1. justabaka
      28.01.2016 14:20
      +4

      Мне кажется, тут модель разделяемых библиотек не применима в принципе. Это не стоковый софт, это пальцетыкательный виджетный bloatware для планшетиков, который постоянно бегает на серверы Microsoft и что-то там делает. Как по мне, так было бы крайне глупо писать софт, который будет от такого зависеть (если это вообще реально). А если же какое-то стороннее приложение будет от чего-то такого жестко зависеть, то, думаю, у продвинутого пользователя, который освоил удаление подобного софта, оно отправится вслед за этой самой зависимостью.


      1. lockywolf
        28.01.2016 14:47

        Ну, типа, им вполне может пользоваться какая-нибудь официальная утилита от МС, например, для калибровки тачскрина. Запустить утилиту, попросить пользователя потыкать по, скажем, калькулятору, и на основе собранных данных что-нибудь посчитать. Что там ещё? ZuneMusic? Какие-нибудь мультимедийные функции вполне могут оттуда дёргаться.

        А «пальцетык» и «блоатварь» — это всё эмоции. Удалением стокового софта можно попортить себе жизнь, но знаком протеста это не является и на сам МС никакого влияния не оказывает.


        1. Valdei
          29.01.2016 11:15

          Но ведь обычно всякие официальные утилиты все необходимые пакеты тащат с собой?
          И даже если не притащили: на днях после установки чистой вин10 ставил из стима всякие игрушки — несколько раз в установку влезала система с вопросом «данное приложение требует %%% для работы, установить?» После чего требуемое устанавливалось как компонент Windows.
          Не в курсе, это перехват запросов к установочным пакетам, поставляемым с игрой, или действительно какой-то анализ зависимостей.


          1. lockywolf
            29.01.2016 11:21

            Ну, как бы, мне не очень как раз нравится идея таскать все необходимые пакеты с собой. Это раздувает дистрибутив и перегружает каналы.

            Идея же ставить из репозитория хороша, но вот загвоздка — не уверен, что оторванные из стоковой установки программы входят в конкретные пакеты. То есть удалением нарушается целостность «скрытых» пакетов, и система может просто не понять, что ей чего-то не хватает.


  1. shumaher86
    28.01.2016 13:41

    Так что не бойтесь экспериментировать, восстановить исходное состояние легко

    это потому, что с диска они не удаляются, а лишь скрываются из меню?


    1. Cheater
      28.01.2016 13:59

      Именно. В скрипте используется Remove-AppxPackage (удалить у текущего юзера), а не Remove-AppxProvisionedPackage (удалить из системы).


      1. Ozerova
        28.01.2016 18:05
        +2

        На мой взгляд, этот вариант более приемлем. Ведь мало ли сколько юзеров используют ПК, а вот «вкусы» у всех разные.


  1. lumini
    28.01.2016 13:44

    Неплохо было бы (как на андроид телефонах) иметь возможность прятать приложения из стартового меню. Сейчас в общий список программ вынесено очень много лишнего («Get Skype», «Get Office», какой-то «Messenger», номеронабиралка — кому она может понадобиться на десктопе, непонятно), причем даже если их удалить или унести в подпапки, то в дальнейшем они магическим образом восстанавливаются. Или хотя бы унести все стандартное-виндовое в папку Accessories, как раньше было.


    1. Xao
      28.01.2016 15:15

      Некоторые приложения можно безболезненно удалять, те же «Get Skype» и «Get Office».


  1. Ogra
    28.01.2016 13:49
    +4

    Раньше писали руководства «как настроить линукс под себя», теперь пишут про винду. Однако.


  1. rainwall
    28.01.2016 14:34

    Возможно я что-то не понимаю, но что мешает ткнуть правой кнопкой по плите и нажать «Удалить»?


    1. Cheater
      28.01.2016 14:43

      Скрипт умеет делать массовое удаление (через перечисление в консоли в одну строчку списка номеров удаляемых приложений) — довольно удобно


    1. Vest
      28.01.2016 17:11

      Я удалил у себя XBox App, хотя контекстное меню не содержало кнопки Uninstall.


      1. Ozerova
        28.01.2016 17:58
        +3

        Да, скриптом можно удалить и те приложения, у которых скрыта эта кнопка.


  1. melt
    29.01.2016 09:12
    -1

    Чтобы настройка не была напрасна и результат не исчез, рекомендую запретить автоматическую установку приложений при апдейтах в реестре.

    Хотелось бы уточнить. Я вот пользуюсь, например, приложением Xbox — оно позволяет по Win+G записывать экран со звуком, соответственно оставляю его. Значит оно не будет автоматически обновляться? Печаль же. Если удалять приложения не через Пуск и правую кнопку, а «легально» через Параметры -> Система -> Приложения и возможности, то они не будут потом автоматически восстанавливаться, как это происходит при удалении через Пуск. Правда удалить можно меньшее количество приложений чем этим скриптом
    Скриншот правильного удаления
    image