public Worker(ILogger <Worker> logger, MainLogic mainLogic) { if (!IsLocalAdmin()) { throw new Exception("Must have Administrator rights to run this program."); } if (!WmiRoutines.IsFeatureInstalled("Hyper-V")) { throw new Exception("Server role \"Hyper-V\" is not installed. Cannot continue."); } _logger = logger; _mainLogic = mainLogic; }
internal static List <string> GetLocalVirtualMachines() { var vmNames = new List <string>(); var scope = WmiRoutines.GetScope(WmiRoutines.NAMESPACE_HYPER_V); var data = WmiRoutines.WmiQuery(scope, "SELECT * FROM MSVM_ComputerSystem WHERE Caption != 'Hosting Computer System'"); if (data != null && data.Count > 0) { foreach (var item in data) { string vmName = item["ElementName"]?.ToString(); if (!string.IsNullOrWhiteSpace(vmName)) { vmNames.Add(vmName); } } } return(vmNames); }