如何在 C# 中获得虚拟机操作系统?

How do you get a Virtual Machines operating system in c#?

我有一个 Azure 虚拟机,我正试图从中获取一些属性。我似乎无法获取 VM 的操作系统。当 VM 不是 运行 时这可能吗?

只需尝试下面的简单控制台应用程序:

using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using System;


namespace fluentMgmtTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var AppId = "";
            var AppSecret = "";
            var tenant = "";
            var subscriptionID = "";
            var vmGroup = "";
            var vmName = "";

            var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(AppId, AppSecret, tenant, AzureEnvironment.AzureGlobalCloud);
            var azure = Azure.Configure().Authenticate(credentials).WithSubscription(subscriptionID);

            var vmID = "/subscriptions/" + subscriptionID + "/resourceGroups/" + vmGroup + "/providers/Microsoft.Compute/virtualMachines/" + vmName;

            var vm = azure.VirtualMachines.GetById(vmID);

            Console.WriteLine(vm.OSType);

        }
    }
}

结果:

注意:请确保您的 Azure AD 应用程序至少 assigned a role with read permission 在您 运行 此代码之前。