You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure.ResourceManager.Compute列出所有资源组中的虚拟机

使用Azure.ResourceManager.Compute列出订阅下所有虚拟机(无需遍历资源组)

要实现无需遍历资源组就能获取订阅内全部虚拟机,你可以直接利用SubscriptionResource的GetVirtualMachines()方法,该方法底层调用Azure REST API的批量查询端点,一次性拉取所有资源组的VM数据。

前置准备

确保已安装以下NuGet包:

  • Azure.ResourceManager
  • Azure.ResourceManager.Compute
  • Azure.Identity(用于身份验证)

代码示例(C#)

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Compute;

// 使用DefaultAzureCredential完成身份验证(支持Azure CLI、Visual Studio、服务主体等多种凭据方式)
ArmClient armClient = new ArmClient(new DefaultAzureCredential());

// 获取目标订阅资源实例(可替换为指定的订阅ID)
var subscription = await armClient.GetDefaultSubscriptionAsync();

// 直接查询订阅下所有虚拟机,无需逐个遍历资源组
var allVms = subscription.GetVirtualMachines();

// 遍历输出虚拟机信息
await foreach (var vm in allVms)
{
    Console.WriteLine($"VM名称: {vm.Data.Name}");
    Console.WriteLine($"所属资源组: {vm.Data.ResourceGroupName}");
    Console.WriteLine($"部署状态: {vm.Data.ProvisioningState}");
    Console.WriteLine("---");
}

说明

  • GetVirtualMachines()方法会发起针对/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines的API请求,一次性返回订阅内所有虚拟机的元数据。
  • 身份验证部分使用DefaultAzureCredential,适配本地开发与生产环境的多种凭据场景,无需硬编码密钥。

内容的提问来源于stack exchange,提问作者Matt Houser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:22:38