如何从Windows 10安装镜像(WIM文件)中删除内置的应用程序,功能和版本?

时间:2020-01-09 10:46:56  来源:igfitidea点击:

在本指南中,很好地说明了如何从Windows 10安装镜像中删除Microsoft Store预置的应用程序,功能(功能)和未使用的Windows版本(

install.wim

文件)。让我们使用DISM或者PowerShell手动进行操作(但可以使用某些脚本自动执行所有操作)。最后,获得一个干净的Windows 10安装镜像,其中没有任何我们不需要的程序或者组件。该图像将仅包含核心Microsoft Store应用程序和功能。

本文介绍了如何清理和优化Windows 10安装镜像,以在进行全新安装或者内部升级时将其部署在计算机上。通过使用SCCM(从Windows 10 1803到Windows 10 1909)通过setup.exe/auto upgrade升级用户计算机上的构建后,我们发现一些先前卸载的内置UWP(Microsoft Store)应用再次出现在这些计算机上。

注意本文以Windows 10 Build 1909为例,但该指南也适用于其他Windows 10 Build。

在计算机上安装Windows 10时,Windows镜像

\sources\install.wim

(或者

install.esd

)实际上已部署。如果Windows 10安装镜像存储为ISO文件,则将其安装到虚拟CD驱动器,然后将E:\sources\install.wim(或者install.esd)文件复制到本地磁盘。我们也可以复制整个目录,但是我们只需要.wim文件。

DISM命令用于修改.WIM文件。如果我们使用的是较旧的Windows镜像,则请确保使用的是最新的DISM版本。要使用其他操作系统版本的Windows 10 install.wim文件,我们需要安装Windows ADK(Windows评估和部署工具包)。我们可以在这里下载ADK:https://msdn.microsoft.com/zh-cn/windows/hardware/dn913721.aspx。向下滚动页面,然后单击下载适用于Windows 10的Windows ADK。当前,最新版本是适用于Windows 10的ADK(2004版)。我们应该只安装部署工具,而不要安装整个ADK工具包。

建议在运行镜像修改命令时使用DISM.exe的完整路径(例如,

C:\Program Files (x86)\Windows Kits\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\dism.exe

)。较早的DISM版本可能不适用于较新版本的.wim文件。

如何从Windows 10 Install.WIM文件中删除其他OS版本?

默认情况下,Windows 10 Media Creation Tool生成的Windows 10安装镜像包含所有可用的Windows版本。如果仅使用一个Windows 10版本(通常是Professional或者Enterprise),则可以从安装镜像中删除所有其他Windows版本。

从install.wim删除不必要的Windows版本不会大大减少.WIM文件的大小。仅删除XML文件和一些元数据。

在install.wim文件中获取可用的Windows 10版本的列表:

Dism /Get-WimInfo /WimFile:"e:\sources\install.esd"

在我们的示例中,图像中有9个版本:Windows 10 Home,Windows 10 Home单一语言,Windows 10教育版,Windows 10 Enterprise,Windows 10 Pro等,索引从1到9.

我们可以使用以下命令将特定Windows 10版本的安装镜像从ESD文件导出到WIM镜像:

Dism /export-image /SourceImageFile:c:\sources\install.esd /SourceIndex:6 /DestinationImageFile:c:\iso\install.wim /Compress:max /CheckIntegrity

此命令将创建一个新的install.wim文件,其中仅包含一个版本的Windows 10 Pro。它在图像中的索引将更改为" 1"。

让我们获取有关WIM文件中剩余图像的详细信息:

dism /get-wiminfo /wimfile:c:\iso\install.wim /index:1
Index : 4
Name : Windows 10 Pro
Description : Windows 10 Pro
Size : 14,754,777,474 bytes
WIM Bootable : No
Architecture : x64
Hal : <undefined>
Version : 10.0.18363
ServicePack Build : 418
ServicePack Level : 0
Edition : Professional
Installation : Client
ProductType : WinNT
ProductSuite : Terminal Server
System Root : WINDOWS
Directories : 22541
Files : 96467
Created : 10/7/2019 - 4:05:55 AM
Modified : 11/15/2019 - 8:46:50 AM
Languages :
en-US (Default)

如果要在install.wim中保留多个Windows版本,则可以使用DISM工具的/ delete-image参数删除不需要的版本。

例如,我们要删除索引为1和3的Home和Home Single Language版本:

Dism/Delete-Image /ImageFile:c:\sources\install.wim/Index:1/CheckIntegrity Dism/Delete-Image /ImageFile:c:\sources\install.wim/Index:3/CheckIntegrity

如果DISM检测到图像中有任何结构性损坏,则"/CheckIntegrity"参数可以撤消WIM文件修改的操作。

或者,我们可以按名称删除版本:

Dism /Delete-Image /ImageFile:c:\sources\install.wim /Name:"Windows 10 Education" /CheckIntegrity

另外,我们可以使用PowerShell从Windows 10安装镜像中删除不需要的版本:

Remove-WindowsImage -ImagePath "c:\sources\install.wim" -Index 2 –CheckIntegrity

从Windows 10安装镜像删除内置UWP应用

我们可以从Windows 10安装镜像中删除所有预配置的UWP(Microsoft Store)应用程序。更快安装Windows并节省磁盘空间非常有用。我们还将摆脱不需要的小部件,并使用户更容易了解操作系统。

我们将向我们展示如何使用DISM或者PowerShell从install.wim删除内置的UWP应用。

在驱动器上创建一个文件夹:

C:\mount

。将Windows安装镜像(WIM)挂载到以下文件夹:

dism.exe /mount-wim /wimfile:c:\iso\install.wim /mountdir:c:\mount /index:1

请注意,我曾经

/index:1

,因为我已经删除了Windows版本,所以不需要上述图像。我们可以指定所需图像的索引。

挂载WIM文件后,可以显示预配置的Microsoft Store应用程序包的列表。我使用了更方便的文本文件格式来查看命令输出:

Dism.exe /image:c:\mount /Get-ProvisionedAppxPackages &gt; c:\ps\apps.txt

关于每个应用程序的信息将如下所示:

DisplayName : Microsoft.BingWeather
Version : 4.25.20211.0
Architecture : neutral
ResourceId : ~
PackageName : Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe

现在是最有趣的事情了:我们将删除所有不需要的应用程序。不幸的是,无法删除Edge,Cortana,Contact Support和其他一些应用程序(但是我们可以使用GPO禁用它们)。我还建议我们离开计算器(

Microsoft.WindowsCalculator

),照片查看器(

Microsoft.Windows.Photos

),

Microsoft.VP9VideoExtensions

,因为Windows 10的新版本没有这些应用程序的经典(台式)版本。另外,请勿删除

Microsoft.WindowsStore

,因为如果有一天需要恢复它很困难。

我们可以一次或者一次全部删除应用程序。要从安装的镜像中删除现代应用程序,请指定其名称(PackageName)。让我们删除BingWeather应用程序:

dism.exe /image:c:\mount /Remove-ProvisionedAppxPackage /PackageName:Microsoft.BingWeather_4.25.20211.0_neutral_~_8wekyb3d8bbwe

同样,删除不需要的所有内置应用程序。

完成后,卸载图像并保存更改(请参见下面的操作)。

另外,我们可以使用TechNet库中的现成PowerShell脚本从Windows 10安装镜像中删除预安装的应用程序:https://gallery.technet.microsoft.com/Removing-Built-in-apps-65dc387b。

这种方法的优点是我们不需要手动安装wim文件。我们所要做的就是指定.wim文件的路径并运行PowerShell脚本。但是,如果出现问题,无论是与DISM还是脚本本身有关的错误,都将更难发现。

以管理员身份打开PowerShell并运行以下命令:

.\removeapps.ps1 -pathtowim c:\Windows10\sources\install.wim -selectapps $true

我们会在单独的行中看到每个应用,并且可以选择是否删除(

Y

)或者离开(

N

) 它。

为所有应用选择动作后,脚本将删除不需要的动作。与DISM不同,我们不需要将更改保存到.wim文件中,这些更改将由脚本保存。

如果要删除所有应用程序,请在命令末尾删除参数selectapps $true。这将删除所有可以删除的应用程序。

使用PowerShell时,我们可能会收到错误消息,因为当前的执行策略设置不允许运行PowerShell脚本。

要解决此问题,请运行以下PowerShell命令:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

这将允许PS1脚本继续运行。

禁用或者删除Windows 10安装镜像中的功能和功能

我们可以使用DISM从Windows 10安装镜像中删除(或者安装)某些功能。

使用DISM获取已安装的Windows 10安装镜像中的预装组件列表:

Dism.exe /image:c:\mount /Get-Capabilities

组件可能已安装或者禁用(不存在)。

我们还可以使用PowerShell显示图像中所有Windows组件的列表(在本示例中,我们将仅显示已安装的Windows组件):

Get-WindowsCapability -Path c:\mount|?{$_.State -eq "Installed"}

Windows 10 1909已预安装以下组件:

App.Support.QuickAssist~~~~0.0.1.0
Browser.InternetExplorer~~~~0.0.11.0
Hello.Face.18330~~~~0.0.1.0
Hello.Face.Migration.18330~~~~0.0.1.0
Language.Basic~~~en-US~0.0.1.0
Language.Handwriting~~~en-US~0.0.1.0
Language.OCR~~~en-US~0.0.1.0
MathRecognizer~~~~0.0.1.0
Media.WindowsMediaPlayer~~~~0.0.12.0
OneCoreUAP.OneSync~~~~0.0.1.0
OpenSSH.Client~~~~0.0.1.0

我们可以按名称删除已安装的组件。让我们删除人脸识别组件Hello.Face:

Dism.exe /image:c:\mount/Remove-Capability /CapabilityName:Hello.Face.18330~~~~0.0.1.0

另外,我们可以启用镜像中的某些功能。例如,要安装所有RSAT管理工具:

Get-WindowsCapability -Path c:\mount |? {$_.Name -like "*RSAT*" -and $_.State -eq "NotPresent"} | Add-WindowsCapability -Path c:\mount

同样,我们可以启用/禁用其他组件。例如,让我们启用.NET 3.5并禁用SMB1:

dism.exe/image:C:\mount /启用功能/功能名称:netfx3/all/source:E:\sources\sxs dism.exe/image:C:\mount /禁用功能/功能名称:smb1protocol

同样,我们可以将驱动程序或者最新的安全更新集成到Windows 10安装镜像中。

优化Windows 10 WIM安装镜像

对Windows 10安装镜像进行更改后,请使用/ cleanup-image参数对其进行优化和清理。

使用/ ResetBase选项删除以前的组件版本:

Dism /Image:C:\Mount /cleanup-image /StartComponentCleanup /ResetBase

使用Dism/ScanHealth检查图像中是否有错误。

DISM /Image:C:\Mount /Cleanup-Image /ScanHealth

仍然需要卸载镜像并将更改保存到WIM文件:

dism.exe /unmount-wim /mountdir:c:\mount /commit

如果我们改变了主意,请使用

/discard

参数代替

/commit

放弃更改。

为了节省空间,我们还可以使用以下命令将install.wim压缩为install.esd:

Dism /Export-Image /SourceImageFile:c:\iso\install.wim /SourceIndex:1 /DestinationImageFile:c:\iso\install.esd /Compress:recovery

然后将install.wim(install.esd)复制到Windows安装介质。我们应该只复制.wim文件,而不更新任何其他文件。

要从安装文件创建ISO镜像,可以使用免费的便携式程序Folder2ISO或者其他类似程序。