Ejemplo n.º 1
0
            private async Task GetServicesAsync()
            {
                const string query = @"
SELECT Caption,
       Description,
       DisplayName,
       Name,
       Started,
       StartMode,
       StartName,
       State
  FROM Win32_Service"; // windows services

                using (var q = Wmi.Query(Endpoint, query))
                {
                    foreach (var service in await q.GetDynamicResultAsync().ConfigureAwait(false))
                    {
                        if (ServicesPatternRegEx?.IsMatch(service.Name) ?? true)
                        {
                            var id = service.Name;
                            var s  = Services.Find(x => x.Id == id) ?? new NodeService();

                            s.Id          = id;
                            s.Caption     = service.Caption;
                            s.DisplayName = service.DisplayName;
                            s.Description = service.Description;
                            s.Name        = service.Name;
                            s.State       = service.State;
                            s.LastSync    = DateTime.UtcNow;
                            switch (service.State)
                            {
                            case "Running":
                                s.Status = NodeStatus.Active;
                                break;

                            case "Stopped":
                                s.Status = NodeStatus.Down;
                                break;

                            default:
                                s.Status = NodeStatus.Unknown;
                                break;
                            }
                            s.Running   = service.Started;
                            s.StartMode = service.StartMode;
                            s.StartName = service.StartName;

                            if (s.Node == null)
                            {
                                s.Node = this;
                                Services.Add(s);
                            }
                        }
                    }
                }
            }
            private async Task GetServicesAsync()
            {
                const string query = @"
SELECT Caption,
       Description,
       DisplayName,
       Name,
       Started,
       StartMode,
       StartName,
       State
  FROM Win32_Service"; // windows services

                using var q = Query(query);
                foreach (var service in await q.GetDynamicResultAsync())
                {
                    if (ServicesPatternRegEx?.IsMatch(service.Name) ?? true)
                    {
                        var id = service.Name;
                        var s  = Services.Find(x => x.Id == id) ?? new NodeService();

                        s.Id          = id;
                        s.Caption     = service.Caption;
                        s.DisplayName = service.DisplayName;
                        s.Description = service.Description;
                        s.Name        = service.Name;
                        s.State       = service.State;
                        s.LastSync    = DateTime.UtcNow;
                        s.Status      = service.State switch
                        {
                            "Running" => NodeStatus.Active,
                            "Stopped" => NodeStatus.Down,
                            _ => NodeStatus.Unknown,
                        };
                        s.Running   = service.Started;
                        s.StartMode = service.StartMode;
                        s.StartName = service.StartName;

                        if (s.Node == null)
                        {
                            s.Node = this;
                            Services.Add(s);
                        }
                    }
                }
            }