捕获虚拟机屏幕截图


本页面介绍如何使用虚拟机屏幕截图工具从虚拟机 (VM) 实例捕获屏幕截图。

从虚拟机捕获屏幕截图有助于您对无法访问的虚拟机进行问题排查。例如,如果虚拟机正在启动或包含已损坏的磁盘映像,则您可能无法访问该虚拟机。

基于 Windows 的操作系统

虚拟机屏幕截图可识别实例是否已成功启动,从而帮助您排查与 Windows 虚拟机之间的 RDP 连接故障。有关 RDP 连接问题排查的信息,请参阅 RDP 问题排查

远程桌面客户端的隐私注意事项

虚拟机屏幕截图工具使用虚拟机的显示适配器,通过远程桌面客户端来捕获本地控制台会话的屏幕截图。通过本地控制台会话捕获屏幕截图的操作可能会捕获用户的桌面设备或浏览器中的敏感信息。

如果您担心在屏幕截图中泄露敏感信息,请通过以下方式配置相应的远程桌面客户端,使其不使用本地控制台会话:

在与 Google 支持团队分享屏幕截图之前,请务必检查其中是否包含敏感信息。

准备工作

  • 在虚拟机上,启用虚拟显示。如需启用虚拟显示,您无需为操作系统安装虚拟显示驱动程序。
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

限制

  • 实例必须处于 RUNNING 生命周期状态

  • 捕获屏幕截图的最大速率为每秒 20 次(即 API 速率限制)。

  • 当某项屏幕截图操作正在进行时,您无法启动另一项屏幕截图操作。

  • 您一次可以捕获一张屏幕截图。

从虚拟机捕获屏幕截图

按照以下步骤从虚拟机捕获屏幕截图。

控制台

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到虚拟机实例

  2. 虚拟机实例页面中,点击要从中捕获屏幕截图的虚拟机实例的名称。

  3. 虚拟机实例详情页面上,点击屏幕截图标签页。

  4. 点击刷新以通过虚拟机生成屏幕截图。如果您尚未启用虚拟显示,则 Google Cloud Console 不会显示屏幕截图。

gcloud

使用 gcloud compute instances get-screenshot 命令从虚拟机捕获屏幕截图:

gcloud compute instances get-screenshot VM_NAME \
  --destination=JPEG_FILENAME \
  --zone=ZONE

替换以下内容:

  • VM_NAME:要从中捕获屏幕截图的虚拟机的名称。

  • JPEG_FILENAME:屏幕截图输出的可选 jpeg 文件名。如果未指定文件名,则系统会将原始 jpeg 数据发送到标准输出 (stdout)。

  • ZONE:要从中捕获屏幕截图的虚拟机所在的地区。

REST

在 Compute Engine API 中,使用 instances.getScreenshot 请求捕获虚拟机的屏幕截图:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zo
nes/ZONE/instances/VM_NAME/screenshot

请替换以下内容:

  • PROJECT:要从中捕获屏幕截图的虚拟机所在的项目的 ID。

  • ZONE:项目所在的地区。

  • VM_NAME:要从中捕获屏幕截图的虚拟机的名称。

虚拟机屏幕截图示例

加载启动管理器的 Compute Engine UEFI

以下屏幕截图显示了加载启动管理器时不可用的 Windows Server 虚拟机:

加载启动管理器的 UEFI

执行更新的 Windows Server 2016 Datacenter

以下屏幕截图显示了完成更新时不可用的 Windows Server 2016 虚拟机:

执行更新的 Windows Server 2016 Datacenter。

加载系统服务的 Windows Server 2016

以下屏幕截图显示了加载系统服务时不可用的 Windows Server 2016 虚拟机:

加载系统服务的 Windows Server 2016。

Windows Server 2016 Datacenter 的登录屏幕

以下屏幕截图显示了已完成启动并准备好登录的 Windows Server 2016 虚拟机:

Windows Server 2016 Datacenter 的登录屏幕。

Windows Server 2019 Core 的 Sysprep 进程

以下屏幕截图显示了 Windows Server 2019 Core 虚拟机实例的 sysprep 进程

Windows Server 2019 Core 的 Sysprep 进程。

Windows Server 2016 Datacenter 的蓝屏错误

以下屏幕截图显示了 Windows Server 2016 Datacenter 虚拟机实例中的蓝屏错误:

Windows Server 2016 Datacenter 的蓝屏。

后续步骤