合 以命令行方式安装Windows功能
简介
正式开始之前,先来啰嗦几句,说说 Windows 功能 是指什么。
在 Window7 系统中它被称作 打开或关闭 Windows 功能
。
而在 Windows10 系统中它则被称作 启用或关闭 Windows 功能
。
同时,Windows10 系统中还有另一个叫作 可选功能
的新东东。
好了,可以开始了。
通常我们都是用鼠标指指点点就完成功能的安装和卸载的。
但是,要想完美地使用命令行来安装Windows功能,以下命令你会选择哪一个呢?
- Add-WindowsCapability
- Enable-WindowsOptionalFeature
- Install-WindowsFeature
- Add-WindowsFeature
- dism.exe
- pkgmgr.exe
先提一嘴 Add-WindowsCapability ,它是个新来的
先说一点,这个 *-WindowsCapability
样式的命令其实是 Windows 10
和 Server 2016
及其后续版本中新添加的。
它与 Enable-WindowsOptionalFeature
命令功能及其相似,并且更加强大的是,它还可以从 Windows Update
或本地存储库下载程序包。
这些命令分别用在哪些支持平台上呢
Vista+2008 | Win7 | 2008R2 | Win8.* | 2012R* | Win10 | 2016 | Nano | Source | |
---|---|---|---|---|---|---|---|---|---|
Enable-WindowsOptionalFeature | * | * | * | * | * | Dism module | |||
Get-WindowsOptionalFeature | * | * | * | * | * | Dism module | |||
Get-WindowsCapability | * | * | ? | Dism module | |||||
Install-WindowsFeature | * | * | ServerManager module | ||||||
Get-WindowsFeature | * | * | * | ServerManager module | |||||
Add-WindowsFeature | * | A | A | ServerManager module | |||||
dism.exe | * | * | * | * | * | * | * | %SystemRoot%\System32 | |
pkgmgr.exe | * | * | * | * | * | * | * | * | %SystemRoot%\System32 |
A = An alias for Install-WindowsFeature(Install WindowsFeature的别名)
这张表格很重要,从中能看出来,来源是 Server Manager
的命令只能在服务器上使用,或者在工作站上安装远程管理工具时可用。
如果你要在一般的客户端计算机上使用,那么不好意思请使用 Dism
命令。
同时为了彻底的安全起见,请使用 dism.exe
。
如果你还在用 Vista/Server 2008
,那么你还是看看 pkgmgr.exe
吧。
为啥会有两套不同的 PowerShell 命令呢
问得好!
我猜测可能微软存在两支截然不同的团队。
其一服务器管理团队,他们创建了相应的命令行以支持服务器管理中的功能。
另外一支 dism
团队(?),它们创建了 dism.exe
却猛然发现已经另有类似功能的程序,可是他们又不想放弃他们的程序。
其实我看这些命令不止两套,挺乱的,接着往下看。
不同功能
让我们看看命令的详细说明:
1 2 3 4 5 6 7 8 9 10 11 | PS C:\> Install-WindowsFeature [-Name] <Feature[]> [-ComputerName <String>] [-Credential <PSCredential>] [-IncludeAllSubFeature] [-IncludeManagementTools] [-LogPath <String>] [-Restart] [-Source <String[]>] [-Confirm] [-WhatIf] [<CommonParameters>] PS C:\> Install-WindowsFeature [-ComputerName <String>] [-Credential <PSCredential>] [-LogPath <String>] [-Restart] [-Source <String[]>] [-Vhd <String>] -ConfigurationFilePath <String> [-Confirm] [-WhatIf] [<CommonParameters>] PS C:\> Install-WindowsFeature [-Name] <Feature[]> [-ComputerName <String>] [-Credential <PSCredential>] [-IncludeAllSubFeature] [-IncludeManagementTools] [-LogPath <String>] [-Source <String[]>] -Vhd <String> [-Confirm] [-WhatIf] [<CommonParameters>] |
和这个比较一下:
1 2 3 4 5 6 7 8 | PS C:\> Enable-WindowsOptionalFeature [-All] [-LimitAccess] [-LogLevel <LogLevel>] [-LogPath <String>] [-NoRestart] [-PackageName <String>] [-ScratchDirectory <String>] [-Source <String[]>] [-SystemDrive <String>] [-WindowsDirectory <String>] -FeatureName <String[]> -Online [<CommonParameters>] PS C:\> Enable-WindowsOptionalFeature [-All] [-LimitAccess] [-LogLevel <LogLevel>] [-LogPath <String>] [-NoRestart] [-PackageName <String>] [-ScratchDirectory <String>] [-Source <String[]>] [-SystemDrive <String>] [-WindowsDirectory <String>] -FeatureName <String[]> -Path <String> [<CommonParameters>] |
一个很大的区别是,服务器管理命令可以针对远程计算机工作,而 dism
只能在本地工作,当然它可以针对离线脱机环境的安装。