Доступ к виртуальным машинам Hyper-V в C # с помощью WMI - PullRequest
0 голосов
/ 18 марта 2019

моя цель: управлять виртуальными машинами Hyper-V удаленно, используя C # и WMI, что означает: перечислять виртуальные машины, запускать и останавливать их. Целевым сервером является Windows Server 2012R2.

Текущее состояние:

            ObjectQuery queryObj = new ObjectQuery("SELECT * FROM Msvm_ComputerSystem");

            ConnectionOptions connOpts = new ConnectionOptions();
            connOpts.Username = @"DOMAIN\ADMINISTRATOR";
            connOpts.Password = "PASSWORD";
            connOpts.EnablePrivileges = true;

            ManagementScope manScope = new ManagementScope(@"\\IP_OF_SERVER\root\virtualization\v2", connOpts);

            //ManagementScope manScope = new ManagementScope(@"\\.\root\virtualization\v2");
            manScope.Connect();
            // connect and set up our search
            ManagementObjectSearcher vmSearcher = new ManagementObjectSearcher(manScope, queryObj);
            ManagementObjectCollection vmCollection = vmSearcher.Get();

            // loop through the VMs
            foreach (ManagementObject vm in vmCollection)
            {
                // display VM details
                Console.WriteLine("\nName: {0}\nStatus: {1}\nDescription: {2}\n",
                    vm["ElementName"].ToString(),
                    vm["EnabledState"].ToString(),
                    vm["Description"].ToString());
            }

Когда я обмениваю IP-адрес сервера с . при инициализации ManagementScope и запускаю программу локально на сервере, я могу прочитать данные виртуальной машины. Однако, когда код выполняется удаленно с включенным IP-адресом, я получаю UnauthorizedAccessException о том, что это not supported. Исключение выдается на ManagementScope.Connect().

В чем моя ошибка?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Кажется, что проблема в нашей сети / конфигурации сервера, потому что даже простой запрос для машинных процессов не удается. Я должен ждать, пока удаленный доступ не будет настроен и обновит запрос как можно скорее.

EDIT2: проблема была в нашей сети, WMI должен быть настроен для удаленного доступа. Нить можно закрыть.

...