Server Core 应用兼容性按需功能

Server Core 应用兼容性按需功能 (FOD) 是一个可选功能包,从 Windows Server 2019 开始,可随时将其添加到 Windows Server 安装的服务器核心安装中。

有关其他按需功能的详细信息,请参阅按需功能

为何要安装应用兼容性 FOD?

Server Core 的应用兼容性按需功能 (FOD) 包含带桌面体验的 Server 安装选项的一部分二进制文件和包,因此显著提高了应用兼容性。 此可选包在单独的 ISO 中提供,或者通过 Windows 更新提供,但只能添加到服务器核心安装和映像。

应用兼容性 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)

安装 App Compatibility Feature on Demand

重要

  • 只能在 Server Core 上安装应用兼容性 FOD。 请勿尝试将 Server Core App Compatibility FOD 添加到具有桌面体验安装选项的服务器。
  • 对于运行 Windows Server 2022 的服务器,请确保在安装应用兼容性 FOD 之前已经安装了适用于基于 x64 的系统 (KB5009608) 的 Microsoft 服务器操作系统版本 21H2 的累积更新预览版 (2022-01)或更高版本的累积更新。 可以通过检查操作系统内部版本号是否为 20348.502 或更高版本来验证这一点。 在此之前,如果尝试使用远程桌面协议 (RDP) 连接到服务器,则可能会看到黑屏且连接已断开。

连接到 Internet

  1. 如果服务器可以连接到 Windows 更新,请从权限提升的 PowerShell 会话运行以下命令,然后在该命令完成运行后重启 Windows Server:

    Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0
    

从 Internet 断开连接

  1. 如果服务器无法连接到 Windows 更新,请下载 Windows Server 语言和可选功能 ISO 映像文件,并将 ISO 复制到本地网络上的共享文件夹:

    注意

    语言和可选功能 ISO 映像文件是 Windows Server 2022 的新增功能。 早期版本的 Windows Server 使用按需功能 (FOD) ISO。

  2. 在已连接到本地网络、要将 App Compatibility FOD 添加到的服务器核心计算机上使用管理员帐户登录。

装载 FOD ISO

  1. 使用 PowerShell 中的 New-PSDrive、命令提示符中的 net use 或某种其他方法连接到 FOD ISO 的位置。 例如,在提升的 PowerShell 会话中运行以下命令:

    $credential = Get-Credential
    
    New-PSDrive -Name FODShare -PSProvider FileSystem -Root "\\server\share" -Credential $credential
    
  2. 将 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
    
  3. 使用以下命令装载 FOD ISO:

    $fodIso = Mount-DiskImage -ImagePath "$isoFolder\$fodIsoFilename"
    
  4. 运行以下命令以获取 FOD ISO 已装载到的驱动器号:

    $fodDriveLetter = ($fodIso | Get-Volume).DriveLetter
    
  5. 运行以下命令(具体取决于操作系统版本):

    对于 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
    
  6. 进度条显示任务完成后,重启操作系统。

选择性地将 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 生命周期策略的信息,请参阅此处

  1. 在已添加应用兼容性 FOD 并已在本地复制 FOD 可选包 ISO 的 Server Core 计算机上以管理员身份登录。

  2. 使用以下命令装载 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"
    
  3. 运行以下命令以获取 FOD ISO 已装载到的驱动器号:

    $fodDriveLetter = ($fodIso | Get-Volume).DriveLetter
    
  4. 运行以下命令(根据你的操作系统版本),使用 $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
    
  5. 进度条显示任务完成后,重启操作系统。

发行说明和建议

重要

  • 使用 FoD 安装的包在就地升级到较新的 Windows Server 版本后不会保留。 升级后,必须重新安装它们。
  • 或者,可以将 FoD 包添加到升级介质。 将包添加到升级介质可确保在升级完成后存在任何 FoD 包的新版本。 有关详细信息,请参阅将功能和可选包添加到脱机 WIM Server Core 映像部分。
  • 安装应用兼容性 FOD 并重新启动服务器后,命令控制台窗口框架颜色将更改为不同的蓝色调。

  • 如果同时选择安装 Internet Explorer 11 可选包,不支持双击打开本地保存的 .htm 文件。 但是,可以右键单击并选择“使用 Internet Explorer 打开”,或者可以直接在 Internet Explorer 中选择“文件”>“打开”来打开此类文件。

  • 为了进一步使用应用兼容性 FOD 增强 Server Core 的应用兼容性,IIS 管理控制台现已作为一个可选组件添加到 Server Core。 但是,若要使用 IIS 管理控制台,需要先添加应用兼容性 FOD。 IIS 管理控制台依赖于 Microsoft 管理控制台 (mmc.exe),而后者只能在添加了应用兼容性 FOD 的 Server Core 中使用。 使用 PowerShell cmdlet Install-WindowsFeature 添加 IIS 管理控制台:

    Install-WindowsFeature -Name Web-Mgmt-Console
    
  • 作为一项常规指导,在 Server Core(包含或不包含这些可选包)上安装应用程序时,有时需要使用无提示安装选项和指令。

添加到脱机 WIM Server Core 映像

  1. 将语言和可选功能 ISO 以及 Windows Server ISO 映像文件下载到 Windows 计算机上的本地文件夹。 可以在 Windows 台式电脑上完成这些步骤,无需使用 Server Core 安装选项运行 Windows Server。

    注意

    语言和可选功能 ISO 映像文件是 Windows Server 2022 的新增功能。 早期版本的 Windows Server 使用按需功能 (FOD) ISO。

  2. 通过在权限提升的 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"
    
  3. 运行以下命令,获取 FOD ISO 和 Windows Server ISO 已装载到的驱动器号:

    $fodDriveLetter = ($fodIso | Get-Volume).DriveLetter
    $wsDriveLetter = ($wsIso | Get-Volume).DriveLetter
    
  4. 将 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
    
  5. 使用以下命令获取 install.wim 文件中要修改的映像名称。 将 install.wim 文件的路径添加到 $installWimPath 变量(位于 Windows Server ISO 文件的 sources 文件夹内)。 请注意输出中此 install.wim 文件中提供的映像的名称。

    $installWimPath = "C:\SetupFiles\WindowsServer\Files\sources\install.wim"
    
    Get-WindowsImage -ImagePath $installWimPath
    
  6. 使用以下命令(请将示例变量值替换为自己的值,并重复使用前一命令中的 $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
    
  7. 根据版本使用以下命令(请将示例变量值替换为自己的值)将所需的功能和包添加到装载的 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
    
  8. 使用以下命令(其中使用了前面命令中的 $wimMountFolder 变量)卸除映像并将更改提交到 install.wim 文件:

    Dismount-WindowsImage -Path $wimMountFolder -Save
    

现在,可以在为 Windows Server 安装文件创建的文件夹中运行 setup.exe 来升级服务器(在本示例中,该文件夹为 C:\SetupFiles\WindowsServer\Files)。 现在,此文件夹包含 Windows Server 安装文件及其他功能与可选包。