Как вы получаете операционную систему виртуальных машин в С#?

У меня есть лазурная виртуальная машина, из которой я пытаюсь получить некоторые свойства. Кажется, я не могу получить операционную систему виртуальной машины. Возможно ли это, когда виртуальная машина не работает?


person user3192935    schedule 06.04.2021    source источник
comment
Нет никакой разницы в том, чтобы получить ОС, когда это физическая коробка.   -  person DavidG    schedule 06.04.2021
comment
Windows или Linux (или оба?)   -  person gunr2171    schedule 06.04.2021
comment
это должно быть просто RuntimeInformation.OSDescription, как это было бы, когда не на виртуальной машине...? (в RuntimeInformation есть много других более специфических аспектов, обратите внимание)   -  person Marc Gravell    schedule 06.04.2021
comment
Что касается определения ОС вне виртуальной машины, исследовали ли вы ее с помощью Azure SDK?   -  person gunr2171    schedule 06.04.2021
comment
Я скажу вам прямо: окна :-), если вы не используете ядро ​​​​.net.   -  person Juanma Feliu    schedule 06.04.2021


Ответы (1)


Просто попробуйте простое консольное приложение ниже:

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 было по крайней мере назначил роль с разрешением на чтение перед запуском этого кода.

person Stanley Gong    schedule 07.04.2021
comment
Спасибо за это. Виртуальная машина, над которой я сейчас работаю, — это Windows 2016 Server. Я получаю только возврат Windows, но когда виртуальная машина запускается, я могу получить полное значение. Использование экземпляра View. - person user3192935; 09.04.2021
comment
@ user3192935, рад узнать, что ваша проблема решена, если мой пост полезен, не могли бы вы нажать на галочку рядом с ответом, чтобы переключить его с серого на заполнение, чтобы принять его как ответ, чтобы он помог другим и закрыть этот вопрос :) - person Stanley Gong; 12.04.2021