适用于 Windows 的 Azure 串行控制台

注意

本文是否有帮助? 你的输入对我们很重要。 请使用此页面上的 “反馈 ”按钮,让我们了解本文对你的影响,或者我们如何改进它。

Azure 门户中的串行控制台提供对 Windows 虚拟机 (VM) 和虚拟机规模集实例的基于文本的控制台的访问权限。 此串行连接连接到 VM 或虚拟机规模集实例的 COM1 串行端口,提供独立于网络或操作系统状态的访问。 只能使用 Azure 门户访问串行控制台,并且仅允许那些对 VM 或虚拟机规模集具有“参与者”或更高访问角色的用户。

串行控制台以相同的方式适用于 VM 和虚拟机规模集实例。 在本文档中,除非另有说明,否则对 VM 的所有提及都将隐式包含虚拟机规模集实例。

串行控制台已在全球 Azure 区域正式发布,并在 Azure 政府 中以公共预览版提供。 Azure 中国云中尚不可用。

有关适用于 Linux 的串行控制台文档,请参阅 适用于 Linux 的 Azure 串行控制台

注意

串行控制台与托管启动诊断存储帐户兼容。

先决条件

  • VM 或虚拟机规模集实例必须使用资源管理部署模型。 不支持经典部署。

  • 使用串行控制台的帐户必须具有 VM 和启动诊断存储帐户的虚拟机参与者角色

  • VM 或虚拟机规模集实例必须具有基于密码的用户。 可以使用 VM 访问扩展的 重置密码 功能创建一个。 从“帮助”部分选择“重置密码”。

  • 虚拟机规模集实例的 VM 必须启用启动诊断

    “诊断”设置下的“启动诊断”选项的屏幕截图。

为 Windows Server 启用串行控制台功能

注意

如果在串行控制台中看不到任何内容,请确保在 VM 或虚拟机规模集上启用了启动诊断。

在自定义或较旧映像中启用串行控制台

Azure 上较新的 Windows Server 映像默认启用 特殊管理控制台 (SAC) 。 SAC 在 Windows 的服务器版本上受支持,但在客户端版本 ((例如,Windows 10、Windows 8 或 Windows 7) )上不可用。

对于 (2018 年 2 月) 之前创建的较旧的 Windows Server 映像,可以通过Azure 门户的运行命令功能自动启用串行控制台。 在Azure 门户,选择“运行命令”,然后从列表中选择名为 EnableEMS 的命令。

Azure 门户的“运行命令”页的屏幕截图,其中突出显示了 EnableEMS 命令。

或者,若要为 2018 年 2 月之前创建的 Windows VM/虚拟机规模集手动启用串行控制台,请执行以下步骤:

  1. 使用远程桌面连接到 Windows 虚拟机

  2. 在管理命令提示符下运行以下命令:

    • bcdedit /ems {current} onbcdedit /ems '{current}' on或 (如果使用的是 PowerShell)
    • bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. 重新启动系统以启用 SAC 控制台。

    动态 GIF 显示重新启动系统和启用 SAC 控制台的过程。

如果需要,还可以脱机启用 SAC:

  1. 将 SAC 配置为数据磁盘的 Windows 磁盘附加到现有 VM。

  2. 在管理命令提示符下运行以下命令:

    • bcdedit /store <mountedvolume>\boot\bcd /ems {default} on
    • bcdedit /store <mountedvolume>\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200

如何实现知道是否启用了 SAC?

如果未启用 SAC ,串行控制台将不会显示 SAC 提示符。 在某些情况下,会显示 VM 运行状况信息,在其他情况下显示为空。 如果使用在 2018 年 2 月之前创建的 Windows Server 映像,则 SAC 可能不会启用。

在串行控制台中启用 Windows 启动菜单

如果需要启用在串行控制台中显示的 Windows 启动加载程序提示,可以将以下附加选项添加到启动配置数据。 有关详细信息,请参阅 bcdedit

  1. 使用远程桌面连接到 Windows VM 或虚拟机规模集实例。

  2. 在管理命令提示符下运行以下命令:

    • bcdedit /set {bootmgr} displaybootmenu yes
    • bcdedit /set {bootmgr} timeout 10
    • bcdedit /set {bootmgr} bootems yes
  3. 重新启动系统以启用启动菜单

注意

为要显示的启动管理器菜单设置的超时会影响 OS 启动时间。 如果认为 10 秒超时值太短或太长,请将其设置为其他值。

使用串行控制台

在串行控制台中使用 CMD 或 PowerShell

  1. 连接到串行控制台。 如果成功连接,则提示为 SAC>

    用于连接到串行控制台的命令输出的屏幕截图,提示 SAC>。

  2. 输入 cmd 以创建具有 CMD 实例的通道。

  3. 输入 ch -si 1 或按 <esc>+<tab> 快捷键切换到运行 CMD 实例的通道。

  4. Enter,然后输入具有管理权限的登录凭据。

  5. 输入有效凭据后,将打开 CMD 实例。

  6. 若要启动 PowerShell 实例,请在 CMD 实例中输入 PowerShell ,然后按 Enter

    启动 PowerShell 命令输出的屏幕截图。

使用串行控制台进行 NMI 调用

NMI) (不可屏蔽的中断旨在创建虚拟机上的软件不会忽略的信号。 从历史上看,NCI 一直用于监视需要特定响应时间的系统上的硬件问题。 如今,程序员和系统管理员通常使用 NMI 作为一种机制来调试或排查未响应的系统的问题。

串行控制台可用于使用命令栏中的键盘图标将 NMI 发送到 Azure 虚拟机。 交付 NMI 后,虚拟机配置将控制系统的响应方式。 Windows 可以配置为在接收 NMI 时崩溃并创建内存转储文件。

命令栏中“发送不可屏蔽中断 (NMI) ”按钮的屏幕截图。

有关配置 Windows 以在接收 NMI 时创建故障转储文件的信息,请参阅 如何使用 NMI 生成故障转储文件

在串行控制台中使用功能键

为 Windows VM 中的串行控制台启用了功能键。 串行控制台下拉列表中的 F8 提供轻松输入“高级启动设置”菜单的便利,但串行控制台与所有其他功能键兼容。 可能需要在键盘上按 Fn + F1 (或 F2、F3 等 ) ,具体取决于使用串行控制台的计算机。

在串行控制台中使用 WSL

已为 Windows Server 2019 或更高版本启用了 适用于 Linux 的 Windows 子系统 (WSL) ,因此,如果运行的是 Windows Server 2019 或更高版本,也可以启用 WSL 以在串行控制台中使用。 这可能有利于熟悉 Linux 命令的用户。 有关为 Windows Server 启用 WSL 的说明,请参阅 安装指南

在串行控制台中重启 Windows VM/虚拟机规模集实例

可以通过导航到电源按钮并单击“重启 VM”,在串行控制台中启动重启。 这将启动 VM 重启,你将在Azure 门户中看到有关重启的通知。

如果想要在不离开串行控制台体验的情况下访问启动菜单,这非常有用。

动画 GIF 显示串行控制台中重启 VM 的过程。

禁用串行控制台

默认情况下,所有订阅都启用了串行控制台访问。 可以在订阅级别或 VM/虚拟机规模集级别禁用串行控制台。 有关详细说明,请访问 启用和禁用 Azure 串行控制台

串行控制台安全性

使用启用了自定义启动诊断存储帐户防火墙的串行控制台

串行控制台在其连接工作流中使用为启动诊断配置的存储帐户。 在此存储帐户上启用防火墙时,必须将串行控制台服务 IP 添加为排除项。 为此,请按照下列步骤操作:

  1. 导航到已启用的自定义启动诊断存储帐户防火墙的设置。

    注意

    若要确定为 VM 启用了哪个存储帐户,请在“支持 + 故障排除”部分中,选择“启动诊断>设置”。

  2. 根据 VM 的地理位置将串行控制台服务 IP 添加为防火墙排除项。

    下表列出了需要根据 VM 所在的区域或地理位置允许作为防火墙排除的 IP。 这是 SerialConsole 服务标记中使用的串行控制台 IP 地址的完整列表的子集。 可以通过 SerialConsole 服务标记限制对启动诊断存储帐户的访问。 服务标记不按区域分隔。 服务标记上的流量仅为入站,串行控制台不会生成流向客户可控制目标的流量。 尽管 Azure 存储帐户防火墙当前不支持服务标记,但可以通过编程方式使用 SerialConsole 服务标记来确定 IP 列表。 有关服务标记的详细信息,请参阅 虚拟网络服务标记

    注意

    仅具有一个区域的 VM 不支持串行控制台的存储帐户防火墙,例如位于意大利的意大利北部。

    IP 地址 地区 地理
    20.205.69.28 东亚、东南亚 AsiaPacific
    20.195.85.180 东亚、东南亚 AsiaPacific
    20.53.53.224 澳大利亚中部、澳大利亚中部 2、澳大利亚东部、澳大利亚东南部 澳大利亚
    20.70.222.112 澳大利亚中部、澳大利亚中部 2、澳大利亚东部、澳大利亚东南部 澳大利亚
    191.234.136.63 巴西南部、巴西东南部 巴西
    20.206.0.194 巴西南部、巴西东南部 巴西
    52.228.86.177 加拿大中部、加拿大东部 加拿大
    52.242.40.90 加拿大中部、加拿大东部 加拿大
    20.45.242.18 Canary (EUAP)
    20.51.21.252 Canary (EUAP)
    52.146.139.220 北欧、西欧 欧洲
    20.105.209.72 北欧、西欧 欧洲
    20.111.0.244 法国中部、法国南部 法国
    52.136.191.10 法国中部、法国南部 法国
    51.116.75.88 德国北部、德国中西部 德国
    20.52.95.48 德国北部、德国中西部 德国
    20.192.168.150 印度中部、印度南部、印度西部 印度
    20.192.153.104 印度中部、印度南部、印度西部 印度
    20.43.70.205 日本东部、日本西部 日本
    20.189.228.222 日本东部、日本西部 日本
    20.200.196.96 韩国中部,韩国韩国 韩国
    52.147.119.29 韩国中部,韩国韩国 韩国
    20.100.1.184 挪威西部、挪威东部 挪威
    51.13.138.76 挪威西部、挪威东部 挪威
    20.208.4.98 瑞士北部、瑞士西部 Switzerland(瑞士)
    51.107.251.190 瑞士北部、瑞士西部 Switzerland(瑞士)
    20.45.95.66 阿联酋中部、阿联酋北部 阿拉伯联合酋长国
    20.38.141.5 阿联酋中部、阿联酋北部 阿拉伯联合酋长国
    20.90.132.144 英国南部、英国西部 UnitedKingdom
    20.58.68.62 英国南部、英国西部 UnitedKingdom
    51.12.72.223 瑞典中部、瑞典南部 瑞典
    51.12.22.174 瑞典中部、瑞典南部 瑞典
    20.98.146.84 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部 美国
    20.98.194.64 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部 美国
    20.69.5.162 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部 美国
    20.83.222.102 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部 美国
    20.83.222.100 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部 美国
    20.141.10.130 所有美国政府云区域 UsGov
    52.127.55.131 所有美国政府云区域 UsGov

    重要

    • 需要允许的 IP 特定于 VM 所在的区域。 例如,在北欧区域部署的虚拟机需要向欧洲地理位置的存储帐户防火墙添加以下 IP 排除项:52.146.139.220 和 20.105.209.72。 查看上表,查找适合你的区域和地理位置的正确 IP。
    • 在当前的串行控制台操作中,Web 套接字将打开到终结点,例如 <region>.gateway.serialconsole.azure.com。 确保允许组织中的浏览器客户端使用终结点 serialconsole.azure.com 。 在美国政府 (Fairfax) 云中,终结点后缀为 serialconsole.azure.us

    有关如何将 IP 添加到存储帐户防火墙的详细信息,请参阅 配置 Azure 存储防火墙和虚拟网络:管理 IP 网络规则

将 IP 地址成功添加到存储帐户防火墙后,请重试到 VM 的串行控制台连接。 如果仍然遇到连接问题,请验证是否已从 VM 区域的存储帐户防火墙中排除正确的 IP 地址。

访问安全性

对串行控制台的访问权限仅限于对虚拟机具有 虚拟机参与者 或更高访问角色的用户。 如果Microsoft Entra租户需要多重身份验证 (MFA) ,则对串行控制台的访问也需要 MFA,因为串行控制台的访问是通过Azure 门户

通道安全性

所有来回发送的数据在传输过程中都使用 TLS 1.2 或更高版本进行加密。

数据存储和加密

Azure 串行控制台不会查看、检查或存储传入和传出虚拟机串行端口的任何数据。 因此,没有要静态加密的数据。

若要确保对运行 Azure 串行控制台的虚拟机分页到磁盘的任何内存中数据进行加密,请使用 基于主机的加密。 默认情况下,为所有 Azure 串行控制台连接启用基于主机的加密。

数据驻留

Azure 门户或 Azure CLI 充当虚拟机串行端口的远程终端。 由于这些终端无法直接连接到通过网络托管虚拟机的服务器,因此中间服务网关用于代理终端流量。 Azure 串行控制台不存储或处理此客户数据。 传输数据的中间服务网关将驻留在虚拟机的地理位置中。

审核日志

当前,对串行控制台的所有访问都记录在虚拟机的启动诊断日志中。 对这些日志的访问权限由 Azure 虚拟机管理员拥有和控制。

警告

不会记录控制台的访问密码。 但是,如果在控制台中运行的命令包含或输出密码、机密、用户名或任何其他形式的个人身份信息 (PII) ,这些信息将写入 VM 启动诊断日志。 它们将与所有其他可见文本一起编写,作为串行控制台的回滚函数实现的一部分。 这些日志是循环日志,只有对诊断存储帐户具有读取权限的个人才能访问这些日志。 但是,我们建议遵循最佳做法,将远程桌面用于可能涉及机密和/或 PII 的任何内容。

并发使用情况

如果用户连接到串行控制台,而另一个用户成功请求访问同一虚拟机,则第一个用户将断开连接,第二个用户将连接到同一会话。

警告

这意味着断开连接的用户不会注销。在使用 SIGHUP 或类似机制) 断开连接时强制注销 (的功能仍在路线图中。 对于 Windows,SAC 中启用了自动超时;对于 Linux,可以配置终端超时设置。

辅助功能

辅助功能是 Azure 串行控制台的重点。 为此,我们确保串行控制台可供有视力障碍或听力障碍的人以及可能无法使用鼠标的用户使用。

键盘导航

使用键盘上的 Tab 键从Azure 门户在串行控制台界面中导航。 你的位置将突出显示在屏幕上。 若要离开串行控制台窗口的焦点,请按键盘上的 Ctrl+F6

将串行控制台与屏幕阅读器配合使用

串行控制台内置了屏幕阅读器支持。 在打开屏幕阅读器的情况下四处导航将允许屏幕阅读器大声朗读当前所选按钮的替换文字。

访问串行控制台的常见方案

应用场景 串行控制台中的操作
防火墙规则不正确 访问串行控制台并修复 Windows 防火墙规则。
文件系统损坏/检查 访问串行控制台并恢复文件系统。
RDP 配置问题 访问串行控制台并更改设置。 有关详细信息,请参阅 RDP 文档
网络锁定系统 从 Azure 门户访问串行控制台以管理系统。 Windows 命令中列出了一些网络 命令:CMD 和 PowerShell
与引导加载程序交互 通过串行控制台访问 BCD。 有关信息,请参阅 在串行控制台中启用 Windows 启动菜单

已知问题

我们知道串行控制台和 VM 的操作系统存在一些问题。 下面是 Windows VM 的这些问题和缓解措施的列表。 这些问题和缓解措施适用于 VM 和虚拟机规模集实例。 如果这些错误与你看到的错误不匹配,请参阅常见串行控制台服务错误中的 常见串行控制台错误

问题 缓解
在连接横幅后按 Enter 不会导致显示登录提示。 如果运行的自定义 VM、强化设备或启动配置导致 Windows 无法正确连接到串行端口,则会发生此错误。 如果运行Windows 10 VM,也会发生此错误,因为只有 Windows Server VM 配置为启用 EMS。
连接到 Windows VM 时仅显示运行状况信息 如果尚未为 Windows 映像启用特殊管理控制台,则会发生此错误。 有关如何在 Windows VM 上手动启用 SAC 的说明,请参阅 在自定义或较旧映像中启用串行控制台
SAC 不会占用浏览器中的整个串行控制台区域 这是 Windows 和终端模拟器的已知问题。 我们正在与两个团队跟踪此问题,但目前没有缓解措施。
如果启用了内核调试,则无法在 SAC 提示符下键入。 RDP 到 VM,并从提升的命令提示符运行 bcdedit /debug {current} off 。 如果无法 RDP,可以改为将 OS 磁盘附加到另一个 Azure VM,并在附加为数据磁盘时对其进行修改,方法是运行 bcdedit /store <drive letter of data disk>:\boot\bcd /debug <identifier> off,然后交换回磁盘。
如果原始内容具有重复字符,则粘贴到 SAC 中的 PowerShell 会导致第三个字符。 对于解决方法,请运行 Remove-Module PSReadLine 以从当前会话中卸载 PSReadLine 模块。 此操作不会删除或卸载模块。
某些键盘输入 (生成奇怪的 SAC 输出,例如 [A[3~) 。 SAC 提示符不支持 VT100 转义序列。
粘贴长字符串不起作用。 串行控制台将粘贴到终端的字符串长度限制为 2048 个字符,以防止串行端口带宽过载。

常见问题解答

问: 如何发送反馈?

A. 通过在 上创建 GitHub 问题 https://aka.ms/serialconsolefeedback来提供反馈。 或者, (不太首选) ,可以通过 或在 虚拟机类别https://feedback.azure.com中发送反馈azserialhelp@microsoft.com。

问: 串行控制台是否支持复制/粘贴?

答: 能。 使用 Ctrl+Shift+CCtrl+Shift+V 复制并粘贴到终端。

问: 谁可以为我的订阅启用或禁用串行控制台?

A. 若要在订阅范围级别启用或禁用串行控制台,必须具有订阅的写入权限。 具有写入权限的角色包括管理员或所有者角色。 自定义角色还可以具有写入权限。

问: 谁可以访问 VM 的串行控制台?

A. 必须具有虚拟机参与者角色或更高版本,VM 才能访问 VM 的串行控制台。

问: 我的串行控制台未显示任何内容,该怎么办?

A. 你的映像可能配置错误,以便进行串行控制台访问。 有关配置映像以启用串行控制台的信息,请参阅 在自定义或较旧映像中启用串行控制台

问: 串行控制台是否可用于虚拟机规模集?

A. 是的,它是! 请参阅 串行控制台入门

后续步骤

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。