Server Core 应用兼容性按需功能 (FOD) 是一个可选功能包,从 Windows Server 2019 开始,可随时将其添加到 Windows Server 安装的服务器核心安装中。
有关其他按需功能的详细信息,请参阅 按需功能。
为何要安装应用兼容性 FOD?
在 Server Core 中的应用按需兼容性功能通过包含来自服务器带桌面体验安装选项的二进制文件和包的子集来提高应用兼容性。 此可选包在单独的 ISO 中或通过 Windows 更新可用,但只能添加到 Server Core 安装和映像。
应用兼容性 FOD 提供的两个主要值包括:
- 提高已上市或部署的服务器应用程序的 Server Core 兼容性。
- 协助提供 OS 组件,并增强软件工具在严重故障排除和调试方案中的应用兼容性。
作为 Server Core 应用兼容性 FOD 一部分提供的操作系统组件包括:
Microsoft管理控制台 (mmc.exe)
事件查看器 (Eventvwr.msc)
性能监视器 (PerfMon.exe)
资源监视器 (Resmon.exe)
设备管理器 (Devmgmt.msc)
文件资源管理器 (Explorer.exe)
Windows PowerShell (Powershell_ISE.exe)
磁盘管理 (Diskmgmt.msc)
故障转移群集管理器 (CluAdmin.msc)
注释
故障转移群集管理器要求首先添加故障转移群集 Windows Server 功能,此操作可以通过从提升的 PowerShell 会话运行以下命令来完成:
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
从 Windows Server 2022 开始,以下组件也可用(使用相同版本的应用兼容性 FOD 时):
Hyper-V 管理器 (virtmgmt.msc)
任务计划程序 (taskschd.msc)
按需安装应用兼容性功能
重要
- 应用兼容性 FOD 只能安装在服务器核心上。 请勿尝试将服务器核心应用兼容性 FOD 添加到具有桌面体验安装选项的服务器。
- 对于运行 Windows Server 2022 的服务器,请在安装应用兼容性 FOD 之前,确保已为基于 x64 的系统安装 Microsoft 服务器操作系统版本 21H2 的 2022-01 累积更新预览(KB5009608)或更高版本的累积更新。 可以通过检查作系统内部版本号是否为 20348.502 或更高版本来验证这一点。 在此之前,如果尝试使用远程桌面协议(RDP)连接到服务器,可能会显示黑屏并断开连接。
连接到互联网
如果服务器可以连接到 Windows 更新,请在提升权限的 PowerShell 会话中运行以下命令,然后在命令运行结束后重启 Windows Server:
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0
已断开与 Internet 的连接
如果服务器无法连接到 Windows 更新,请改为下载 Windows Server 语言和可选功能 ISO 映像文件,并将 ISO 复制到本地网络上的共享文件夹:
- 如果你有批量许可证,可以从获取作系统 ISO 映像文件的同一门户中下载 Windows Server 语言和可选功能 ISO 映像文件: 批量许可服务中心。
- Windows Server 语言和可选功能 ISO 映像文件还会在 Microsoft 评估中心或 Visual Studio 门户中为订阅者提供。
注释
语言和可选功能 ISO 映像文件是 Windows Server 2022 的新增功能。 早期版本的 Windows Server 使用按需功能 (FOD) ISO。
在已连接到本地网络、要将 App Compatibility FOD 添加到的服务器核心计算机上使用管理员帐户登录。
装载 FOD ISO
使用 PowerShell 中的
New-PSDrive
、命令提示符中的net use
或某种其他方法连接到 FOD ISO 的位置。 例如,在提升的 PowerShell 会话中,运行以下命令:$credential = Get-Credential New-PSDrive -Name FODShare -PSProvider FileSystem -Root "\\server\share" -Credential $credential
将 FOD ISO 复制到所选的本地文件夹(复制作可能需要一些时间)。 使用文件夹位置和 ISO 文件名编辑以下变量,并运行以下命令,例如:
$isoFolder = "C:\SetupFiles\WindowsServer\ISOs" $fodIsoFilename = "FOD_ISO_filename.iso" New-Item -ItemType Directory -Path $isoFolder Copy-Item -Path "FODShare:\$fodIsoFilename" -Destination $isoFolder -Verbose
使用以下命令装载 FOD ISO:
$fodIso = Mount-DiskImage -ImagePath "$isoFolder\$fodIsoFilename"
运行以下命令以获取 FOD ISO 已装载到的驱动器号:
$fodDriveLetter = ($fodIso | Get-Volume).DriveLetter
运行以下命令(具体取决于作系统版本):
对于 Windows Server 2022:
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0 -Source ${fodDriveLetter}:\LanguagesAndOptionalFeatures\ -LimitAccess
对于早期版本的 Windows Server:
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0 -Source ${fodDriveLetter}:\ -LimitAccess
进度条完成后,重启操作系统。
(可选)将 Internet Explorer 11 添加到服务器核心
注释
需要使用 Server Core 应用兼容性 FOD 来添加 Internet Explorer 11,但不需要使用 Internet Explorer 11 来添加 Server Core 应用兼容性 FOD。
注释
从 Windows Server 2022 开始,尽管 Internet Explorer 11 可以添加到 Windows Server 的服务器核心安装中,但应改用 Microsoft Edge 。 Microsoft Edge 内置了 Internet Explorer 模式 (“IE 模式”),因此可以直接从 Microsoft Edge 访问基于 Internet Explorer 的旧网站和应用程序。 有关 Internet Explorer 生命周期策略的信息,请参阅 此处 。
在已添加应用兼容性 FOD 的服务器核心计算机上以管理员身份登录,并在本地复制 FOD 可选包 ISO。
使用以下命令装载 FOD ISO。 此步骤假定你已在本地复制 FOD ISO。 如果没有,请完成装载 FOD ISO 中的步骤 1 和步骤 2。 这些命令遵循这两个步骤。 使用文件夹位置和 ISO 文件名编辑变量,并运行以下命令,例如:
$isoFolder = "C:\SetupFiles\WindowsServer\ISOs" $fodIsoFilename = "FOD_ISO_filename.iso" $fodIso = Mount-DiskImage -ImagePath "$isoFolder\$fodIsoFilename"
运行以下命令以获取 FOD ISO 已装载到的驱动器号:
$fodDriveLetter = ($fodIso | Get-Volume).DriveLetter
运行以下命令(具体取决于作系统版本),使用
$packagePath
变量作为 Internet Explorer .cab 文件的路径:对于 Windows Server 2022:
$packagePath = "${fodDriveLetter}:\LanguagesAndOptionalFeatures\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~~.cab" Add-WindowsPackage -Online -PackagePath $packagePath
对于早期版本的 Windows Server:
$packagePath = "${fodDriveLetter}:\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~~.cab" Add-WindowsPackage -Online -PackagePath $packagePath
进度条完成后,重启操作系统。
发行说明和建议
重要
- 在就地升级到较新的 Windows Server 版本后,使用 FoD 安装的软件包将不会被保留。 升级后,必须再次安装它们。
- 或者,可以将 FoD 包添加到升级介质。 将包添加到升级媒体可确保升级完成后存在任何 FoD 包的新版本。 有关详细信息,请参阅“ 将功能和可选包添加到脱机 WIM Server Core 映像 ”部分。
安装应用兼容性 FOD 并重新启动服务器后,命令控制台窗口的框架颜色将更改为不同的蓝色。
如果选择还安装 Internet Explorer 11 可选包,则不支持双击打开本地保存 .htm 文件。 但是,可以 右键单击 并选择“ 使用 Internet Explorer 打开”,也可以直接从 Internet Explorer 文件 ->Open 打开它。
为了进一步增强 Server Core 与应用兼容性 FOD 的应用兼容性,IIS 管理控制台已作为可选组件添加到服务器核心。 但是,必须先添加应用兼容性 FOD 才能使用 IIS 管理控制台。 IIS 管理控制台依赖于Microsoft管理控制台(mmc.exe),该控制台仅在服务器核心上可用,并添加了应用兼容性 FOD。 使用 PowerShell cmdlet Install-WindowsFeature 添加 IIS 管理控制台:
Install-WindowsFeature -Name Web-Mgmt-Console
作为一般指导点,在 Server Core 上安装应用程序(无论是否安装这些可选包),有时需要使用无提示安装选项和说明。
添加到脱机 WIM Server Core 映像
将语言和可选功能 ISO 和 Windows Server ISO 映像文件下载到 Windows 计算机上的本地文件夹。 可以在 Windows 桌面电脑上完成这些步骤,无需使用 Server Core 安装选项运行 Windows Server。
- 如果你有批量许可证,可以从获取作系统 ISO 映像文件的同一门户中下载 Windows Server 语言和可选功能 ISO 映像文件: 批量许可服务中心。
- Windows Server 语言和可选功能 ISO 映像文件还会在 Microsoft 评估中心或 Visual Studio 门户中为订阅者提供。
注释
语言和可选功能 ISO 映像文件是 Windows Server 2022 的新增功能。 早期版本的 Windows Server 使用按需功能 (FOD) ISO。
通过在权限提升的 PowerShell 会话中运行以下命令,装载语言和可选功能 ISO 和 Windows Server ISO。 使用文件夹位置和 ISO 文件名编辑变量,并运行以下命令,例如:
$isoFolder = "C:\SetupFiles\WindowsServer\ISOs" $fodIsoFilename = "FOD_ISO_filename.iso" $wsIsoFilename = "Windows_Server_ISO_filename.iso" $fodIso = Mount-DiskImage -ImagePath "$isoFolder\$fodIsoFilename" $wsIso = Mount-DiskImage -ImagePath "$isoFolder\$wsIsoFilename"
运行以下命令,获取 FOD ISO 和 Windows Server ISO 已装载到的驱动器号:
$fodDriveLetter = ($fodIso | Get-Volume).DriveLetter $wsDriveLetter = ($wsIso | Get-Volume).DriveLetter
将 Windows Server ISO 文件的内容复制到本地文件夹,例如 C:\SetupFiles\WindowsServer\Files。 复制操作可能需要一些时间。
$wsFiles = "C:\SetupFiles\WindowsServer\Files" New-Item -ItemType Directory -Path $wsFiles Copy-Item -Path ${wsDriveLetter}:\* -Destination $wsFiles -Recurse
使用以下命令获取要在 install.wim 文件中修改的映像名称。 将安装.wim 文件的路径添加到位于 Windows Server ISO 文件中
$installWimPath
文件夹里的 变量。 请注意输出中此 install.wim 文件中提供的映像的名称。$installWimPath = "C:\SetupFiles\WindowsServer\Files\sources\install.wim" Get-WindowsImage -ImagePath $installWimPath
使用以下命令将示例变量值替换为你自己的变量,并从上一个命令重用
$installWimPath
变量,将 install.wim 文件装载到新文件夹中。$wimImageName
- 输入要从上一命令的输出装载的图像的名称。 此处的示例使用 Windows Server 2022 Datacenter。$wimMountFolder
- 指定访问 install.wim 文件内容时要使用的空文件夹。
$wimImageName = "Windows Server 2022 Datacenter" $wimMountFolder = "C:\SetupFiles\WindowsServer\WIM" New-Item -ItemType Directory -Path $wimMountFolder Set-ItemProperty -Path $installWimPath -Name IsReadOnly -Value $false Mount-WindowsImage -ImagePath $installWimPath -Name $wimImageName -Path $wimMountFolder
使用以下命令(具体取决于版本)将所需的功能和包添加到装载的 install.wim 映像中,并将示例变量值替换为你自己的变量值。
$capabilityName
- 指定要安装的功能的名称(在本例中为 AppCompatibility 功能)。$packagePath
- 指定要安装的包的路径(在本例中,指定要安装的 Internet Explorer cab 文件)。
对于 Windows Server 2022:
$capabilityName = "ServerCore.AppCompatibility~~~~0.0.1.0" $packagePath = "${fodDriveLetter}:\LanguagesAndOptionalFeatures\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~~.cab" Add-WindowsCapability -Path $wimMountFolder -Name $capabilityName -Source "${fodDriveLetter}:\LanguagesAndOptionalFeatures" -LimitAccess Add-WindowsPackage -Path $wimMountFolder -PackagePath $packagePath
对于早期版本的 Windows Server:
$capabilityName = "ServerCore.AppCompatibility~~~~0.0.1.0" $packagePath = "${fodDriveLetter}:\Microsoft-Windows-InternetExplorer-Optional-Package~31bf3856ad364e35~amd64~~.cab" Add-WindowsCapability -Path $wimMountFolder -Name $capabilityName -Source "${fodDriveLetter}:\" -LimitAccess Add-WindowsPackage -Path $wimMountFolder -PackagePath $packagePath
使用以下命令卸载并提交对 install.wim 文件的更改,该命令使用
$wimMountFolder
前面命令中的变量:Dismount-WindowsImage -Path $wimMountFolder -Save
现在可以从为 Windows Server 安装文件创建的文件夹运行 setup.exe 来升级服务器,在本示例中为 C:\SetupFiles\WindowsServer\Files。 此文件夹现在包含包含额外功能和可选包的 Windows Server 安装文件。