示例#1
0
        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;
        }
示例#2
0
        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);
        }