本页面介绍如何使用虚拟机屏幕截图工具从虚拟机 (VM) 实例捕获屏幕截图。
从虚拟机捕获屏幕截图有助于您对无法访问的虚拟机进行问题排查。例如,如果虚拟机正在启动或包含已损坏的磁盘映像,则您可能无法访问该虚拟机。
基于 Windows 的操作系统
虚拟机屏幕截图可识别实例是否已成功启动,从而帮助您排查与 Windows 虚拟机之间的 RDP 连接故障。有关 RDP 连接问题排查的信息,请参阅 RDP 问题排查。
远程桌面客户端的隐私注意事项
虚拟机屏幕截图工具使用虚拟机的显示适配器,通过远程桌面客户端来捕获本地控制台会话的屏幕截图。通过本地控制台会话捕获屏幕截图的操作可能会捕获用户的桌面设备或浏览器中的敏感信息。
如果您担心在屏幕截图中泄露敏感信息,请通过以下方式配置相应的远程桌面客户端,使其不使用本地控制台会话:
Chrome 远程桌面:如果您使用的是 Chrome 远程桌面,请务必启用幕布模式,使其不连接到本地控制台会话。
Microsoft RDP:RDP 客户端通过使用 Windows 远程桌面服务 (RDS) 进行连接。Windows RDS 允许 RDP 客户端选择是启动新的控制台会话还是连接到现有的控制台会话,因此可能会涉及隐私。如需了解如何自定义 RDS,使其不连接到本地控制台会话,请参阅支持的远程桌面 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
实例必须处于
RUNNING
生命周期状态。捕获屏幕截图的最大速率为每秒 20 次(即 API 速率限制)。
当某项屏幕截图操作正在进行时,您无法启动另一项屏幕截图操作。
您一次可以捕获一张屏幕截图。
VM_NAME
:要从中捕获屏幕截图的虚拟机的名称。JPEG_FILENAME
:屏幕截图输出的可选 jpeg 文件名。如果未指定文件名,则系统会将原始 jpeg 数据发送到标准输出 (stdout)。ZONE
:要从中捕获屏幕截图的虚拟机所在的地区。PROJECT
:要从中捕获屏幕截图的虚拟机所在的项目的 ID。ZONE
:包含项目的可用区。VM_NAME
:要从中捕获屏幕截图的虚拟机的名称。了解如何从虚拟机收集诊断信息。
了解如何排查 Windows 实例问题。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
限制
从虚拟机捕获屏幕截图
按照以下步骤从虚拟机捕获屏幕截图。
控制台
gcloud
使用
gcloud compute instances get-screenshot
命令从虚拟机捕获屏幕截图:gcloud compute instances get-screenshot VM_NAME \ --destination=JPEG_FILENAME \ --zone=ZONE
替换以下内容:
REST
在 Compute Engine API 中,使用
instances.getScreenshot
请求捕获虚拟机的屏幕截图:GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zo nes/ZONE/instances/VM_NAME/screenshot
请替换以下内容:
虚拟机屏幕截图示例
加载启动管理器的 Compute Engine UEFI
以下屏幕截图显示了加载启动管理器时不可用的 Windows Server 虚拟机:
执行更新的 Windows Server 2016 Datacenter
以下屏幕截图显示了完成更新时不可用的 Windows Server 2016 虚拟机:
加载系统服务的 Windows Server 2016
以下屏幕截图显示了加载系统服务时不可用的 Windows Server 2016 虚拟机:
Windows Server 2016 Datacenter 的登录屏幕
以下屏幕截图显示了已完成启动并准备好登录的 Windows Server 2016 虚拟机:
Windows Server 2019 Core 的 Sysprep 进程
以下屏幕截图显示了 Windows Server 2019 Core 虚拟机实例的 sysprep 进程:
Windows Server 2016 Datacenter 的蓝屏错误
以下屏幕截图显示了 Windows Server 2016 Datacenter 虚拟机实例中的蓝屏错误:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-06-25。
-