Размер предустановленных приложений Windows превышает указываемые системой значения

2022-04-25 5616 комментарии
ОС Windows некорректно оценивает реальный размер предустановленных приложений из-за того, что они могут быть установлены сразу в несколько папок

Операционная система Windows 11 включает десятки различных предустановленных приложений. Некоторые из них обеспечивают основную функциональность, например просмотр фотографий, воспроизведение мультимедиа или редактирование текста. Другие приложения имеют узкую направленность и используются только небольшой группой пользователей Windows.

Многие предустановленные приложения можно удалить, перейдя в приложение Параметры > Приложения, с помощью команд PowerShell или таких инструментов Windows Packet Manager (winget). Некоторые администраторы удаляют ненужные приложения, чтобы освободить место на диске.

Как выясняется, фактический размер, занимаемый системными приложениями, превышает значения, указанные в списке Параметры > Приложения. В этом интерфейсе многие программы Windows указаны с размером в несколько килобайт, что не соответствует действительности.

Система некорректно оценивает реальный размер приложений из-за того, что они могут быть установлены сразу в несколько папок. Приложение «Параметры» отображает размер всего одной из папок, игнорируя другие папки с файлами приложения.

Эта особенность касается также команд PowerShell, выводящих список приложений.

Майкл Нихаус (Michael Niehaus), работавший ранее инженером в Microsoft, исследовал данный вопрос в Windows 11. Он опубликовал свои выводы в блоге Out of Office Hours и создал сценарий PowerShell, который возвращает полный размер предустановленных приложений в системах Windows:

Get-AppxProvisionedPackage -online | % {
	# Get the main app package location using the manifest
	$loc = Split-Path ( [Environment]::ExpandEnvironmentVariables($_.InstallLocation) ) -Parent
	If ((Split-Path $loc -Leaf) -ieq 'AppxMetadata') {
		$loc = Split-Path $loc -Parent
	}
	# Get a pattern for finding related folders
	$matching = Join-Path -Path (Split-Path $loc -Parent) -ChildPath "$($_.DisplayName)*"
	$size = (Get-ChildItem $matching -Recurse -ErrorAction Ignore | Measure-Object -Property Length -Sum).Sum
	# Add the results to the output
	$_ | Add-Member -NotePropertyName Size -NotePropertyValue $size
	$_ | Add-Member -NotePropertyName InstallFolder -NotePropertyValue $loc
	$_
} | Select DisplayName, PackageName, Version, InstallFolder, Size

Как узнать фактический размер предустановленных приложений Windows

Сценарий PowerShell доступен для загрузки. Просто скачайте архив get-appsizes.zip в локальную систему и распакуйте его.

Откройте инструмент Windows PowerShell от имени Администратора, перейдите в папку со скриптом (Set-Location -Path <путь к папке> ) и запустите команду:

 .\Get-AppSizes.ps1 -online | Out-GridView

Примечание. Обратите внимание, что вам необходимо разрешить выполнение сторонних сценариев (Set-ExecutionPolicy Unrestricted) и выбрать «запустить один раз», когда будет предложено запустить скрипт. Осторожные пользователи могут просмотреть исходный код перед запуском скрипта, чтобы убедиться в его безопасности.

Сценарий PowerShell открывает новое окно, в котором каждое приложение выводится в отдельной строке. Все приложения указаны с именем, именем пакета, папкой установки, версией и размером. Размер указан в байтах. Большинство приложений имеют размер от десяти мегабайт и более. Некоторые из них, такие как «Ваш телефон», Windows Store, Windows Communication Apps или Microsoft Teams имеют гораздо более значительный размер.

Microsoft следует скорректировать значения, указанные в разделе Параметры > Приложения. Небольшие размеры установленных приложений формируют у пользователей и администраторов неправильные ожидания.

А вы удаляете предустановленные приложения?

© .

Комментарии и отзывы

Добавляя комментарий, ознакомьтесь с Правилами сообщества

Нашли ошибку?