默认的 Windows 11 应用程序比报告的要大得多
默认的 Windows 11 应用程序比报告的要大得多
微软的 Windows 11 操作系统包括几十个默认应用程序,在首次运行安装后默认可用。其中一些应用程序提供核心功能,例如照片查看、媒体播放或纯文本编辑。其他人关注的范围很窄,只对一小部分 Windows 用户有用。
许多预安装的应用程序可以通过设置 > 应用程序、PowerShell 命令或使用诸如 winget、Windows 包管理器等程序从 Windows 电脑中删除。这些应用程序占用磁盘空间,一些管理员可能希望删除它们以释放空间驱动器
在确定这些应用程序占用的实际大小时,管理员会遇到障碍。设置 > 应用程序列表对此毫无用处,因为许多默认的 Windows 应用程序仅列出了几 KB 大小。
存储的读数不正确。报告的预安装 Windows 应用程序数量较少的原因是这些应用程序可能安装到多个文件夹中。Microsoft 的设置应用程序返回这些文件夹之一的大小,因为它忽略了存储应用程序文件的任何其他文件夹。
当您运行常规 PowerShell 命令以返回应用程序列表时也是如此。
Michael Niehaus 分析了 Windows 11 上的行为。他在他的网站上的一篇博客文章中发表了他的发现,并创建了一个 PowerShell 脚本,该脚本返回 Windows 系统上默认应用程序的完整大小。
PowerShell 脚本可供下载。只需将 zip 存档下载到您的本地系统并解压缩即可开始使用。
使用“开始”菜单启动提升的 PowerShell 提示符,导航到存储脚本的文件夹,然后运行 .\Get-AppSizes.ps1 -online | Out-GridView 获取输出。
请注意,您需要允许执行第三方脚本,并在提示运行时选择“运行一次”。谨慎的用户可能会在运行脚本之前查看代码,以确保它可以安全运行。
在线获取 AppxProvisionedPackage | % {
# 使用清单获取主应用程序包位置
$loc = Split-Path([Environment]::ExpandEnvironmentVariables($_.InstallLocation)) -Parent
If ((Split-Path $loc -Leaf) -ieq \'AppxMetadata\') {
$loc = 拆分路径 $loc -Parent
}
# 获取查找相关文件夹的模式
$matching = Join-Path -Path (Split-Path $loc -Parent) -ChildPath "$($_.DisplayName)*"
$size = (Get-ChildItem $matching -Recurse -ErrorAction Ignore | Measure-Object -Property Length -Sum).Sum
# 将结果添加到输出
$_ | 添加成员 -NotePropertyName 大小 -NotePropertyValue $size
$_ | 添加成员 -NotePropertyName InstallFolder -NotePropertyValue $loc
$_
} | 选择 DisplayName、PackageName、Version、InstallFolder、Size
PowerShell 脚本将打开一个新窗口,其中在其单独的行中列出了每个应用程序。每个应用程序都列出了它的名称、包名称、安装文件夹、版本和大小。大小以字节为单位列出。大多数应用程序的大小为 10 兆字节或更多。一些,YourPhone、Windows Store、Windows Communication Apps 或 Microsoft Teams,比这要大得多。
微软应该重新调整“设置”应用程序列表中的大小读数,因为已安装应用程序的小尺寸给用户和管理员留下了错误的印象。