Есть ли какой-либо компонент или класс, который позволяет мне получить статус всех виртуальных машин, работающих на Hyper-v?Я хочу иметь возможность перечислить все vms и их состояние (остановлено, работает, приостановлено и т. Д.).
Я знаю, что у Microsoft есть методы WMI, но все примеры, которые я получил, предназначены для .Net и ни для Delphi.,Я должен быть в состоянии преобразовать эти классы в Delphi, но было бы проще, если бы я мог использовать что-то уже для Delphi.
EDIT
У меня есть пример на C #:
/
/ define the information we want to query - in this case, just grab all properties of the object
ObjectQuery queryObj = new ObjectQuery("SELECT * FROM Msvm_ComputerSystem");
// object for storing WMI connection options
// pass the "user", "password" and "domain" from command-line
// don't hard-code these into the application!
ConnectionOptions connOpts = new ConnectionOptions();
connOpts.Username = user;
connOpts.Authority = "ntlmdomain:" + domain;
connOpts.Password = password;
// management scope object
ManagementScope manScope = new ManagementScope(@"\\RemoteSystem\root\virtualization", connOpts);
// 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());
}
Я попытался запустить это в Visual Studio, чтобы посмотреть, работает ли он, поэтому я могу попытаться перевести его на Delphi.Но даже если я изменил имя пользователя, домен и пароль, я все еще получил эту ошибку:
{"The RPC server is not available. (HRESULT: 0x800706BA)"}