Esempio n. 1
0
        public TData <ComputerInfo> GetServerStatus()
        {
            var obj          = new TData <ComputerInfo>();
            var computerInfo = ComputerHelper.GetComputerInfo();

            obj.Data = computerInfo;
            obj.Tag  = 1;
            return(obj);
        }
Esempio n. 2
0
        public void TestGetComputerInfo()
        {
            ComputerInfo computerInfo = ComputerHelper.GetComputerInfo();

            Assert.IsNotEmpty(computerInfo.CPURate);
            Assert.IsNotEmpty(computerInfo.RAMRate);
            Assert.IsNotEmpty(computerInfo.TotalRAM);
            Assert.IsNotEmpty(computerInfo.RunTime);
        }
Esempio n. 3
0
        private void DoWork(object state)
        {
            //执行任务
            ServerStateEntity entity = new ServerStateEntity();
            var computer             = ComputerHelper.GetComputerInfo();

            entity.F_ARM     = computer.RAMRate;
            entity.F_CPU     = computer.CPURate;
            entity.F_IIS     = "0";
            entity.F_WebSite = _hostingEnvironment.ContentRootPath;
            new ServerStateService(_context).SubmitForm(entity).GetAwaiter().GetResult();
        }
        /// <summary>
        /// Create a new instance of Emulator Controller for controlling emulator actions
        /// </summary>
        public EmulatorController(ILog logging, Panel docker = null, string arguments = null, string profileName = "Bot", [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null)
        {
            if (!Directory.Exists("Emulators"))
            {
                Directory.CreateDirectory("Emulators");
                throw new FileNotFoundException("No emulator dll is found! Please download the emulator's dll or create one before using this script!");
            }
            bool Found = false;

            foreach (var dll in Directory.GetFiles("Emulators", "*.dll"))
            {
                try
                {
                    var assembly = Assembly.LoadFrom(dll);
                    foreach (var t in assembly.GetTypes())
                    {
                        if (t.GetInterface("IEmulator") != null)
                        {
                            var type = Activator.CreateInstance(t) as IEmulator;
                            if (type.CheckEmulatorExist(arguments, logger))
                            {
                                emulator = type;
                                Found    = true;
                                break;
                            }
                        }
                    }
                    if (Found)
                    {
                        break;
                    }
                }
                catch
                {
                }
            }
            Config = Config.GetInstance(profileName);
            Config.ReadConfig();
            logging.SetLogPath(Path.Combine(Config.ConfigPath, "Log") + "\\");
            if (emulator == null || !Found)
            {
                //No installed emulator found
                throw new Exception("No installed emulator found!");
            }
            this.docker = docker;
            logger      = logging;
            logger.WritePrivateLog("Emulator Controller created", lineNumber, caller);
            if (ComputerHelper.getScalingFactor() != 1)
            {
                logger.WriteLog("Please set your scaling factor to 100% before using this program to ensure everything works well!", Color.Red);
            }
        }
Esempio n. 5
0
        public static void UpdateDisks()
        {
            LocalLogger.Log($"Method {nameof(UpdateDisks)} is running");
            HubService.LogOnPage("Updating disks data");
            var newDisks = ComputerHelper.GetDisks();

            try
            {
                var db       = JsonLocalDatabase.Instance;
                var computer = db.Computer;
                if (computer.Disks == null)
                {
                    computer.Disks = newDisks;
                }
                foreach (var newDisk in newDisks)
                {
                    var disk = computer.Disks.FirstOrDefault(d => d.Letter == newDisk.Letter);
                    if (disk == null)
                    {
                        computer.Disks.Add(newDisk);
                    }
                    else
                    {
                        var diskChanged = disk.Name != newDisk.Name ||
                                          Math.Abs(disk.TotalSpaceInGigaBytes - newDisk.TotalSpaceInGigaBytes) > 0.05 ||
                                          Math.Abs(disk.FreeSpaceInGigaBytes - newDisk.FreeSpaceInGigaBytes) > 0.05; // Tolerance up to 50 MB.

                        if (diskChanged)
                        {
                            disk.Name = newDisk.Name;
                            disk.FreeSpaceInGigaBytes  = newDisk.FreeSpaceInGigaBytes;
                            disk.TotalSpaceInGigaBytes = newDisk.TotalSpaceInGigaBytes;
                            disk.Synced = false;
                        }
                    }
                }
                var removedDisks = computer.Disks.Except(newDisks).ToList();
                removedDisks.ForEach(rd => computer.Disks.Remove(rd));
                if (removedDisks.Any() && computer.Disks.FirstOrDefault() != null)
                {
                    computer.Disks.FirstOrDefault().Synced = false;
                }

                db.Computer = computer;
            }
            catch
            (Exception e)
            {
                LocalLogger.Log("UpdateDisks", e);
            }
        }
Esempio n. 6
0
        public async Task <ActionResult> GetServerDataJson()
        {
            //windows环境
            var    computer   = ComputerHelper.GetComputerInfo();
            var    arm        = computer.RAMRate;
            var    cpu        = computer.CPURate;
            var    iis        = computer.RunTime;
            var    TotalRAM   = computer.TotalRAM;
            string ip         = WebHelper.GetWanIp();
            string ipLocation = WebHelper.GetIpLocation(ip);
            var    IP         = string.Format("{0} ({1})", ip, ipLocation);

            return(Content(new { ARM = arm, CPU = cpu, IIS = iis, TotalRAM = TotalRAM, IP = IP }.ToJson()));
        }
Esempio n. 7
0
        public IActionResult GetServerJson()
        {
            TData <ComputerInfo> obj          = new TData <ComputerInfo>();
            ComputerInfo         computerInfo = null;

            try
            {
                computerInfo = ComputerHelper.GetComputerInfo();
            }
            catch (Exception ex)
            {
                LogHelper.WriteWithTime(ex);
                obj.Message = ex.Message;
            }
            obj.Data = computerInfo;
            obj.Tag  = 1;
            return(Json(obj));
        }
        public ProcessListViewModel()
        {
            LoaderManager.Instance.Initialize(this);
            ComputerHelper.Initialize();
            _processes = new ObservableCollection <SystemProcess>();
            var pros = Process.GetProcesses();

            foreach (var process in pros)
            {
                _processes.Add(new SystemProcess(process));
            }
            _processThreads = new ObservableCollection <SystemProcessThread>();
            _processModules = new ObservableCollection <SystemProcessModule>();
            _tokenSource    = new CancellationTokenSource();
            _token          = _tokenSource.Token;
            StartBackgroundTasks();
            StationManager.StopThreads += StopBackgroundTasks;
        }
Esempio n. 9
0
        public IActionResult GetServerJson()
        {
            TData <ComputerInfo> obj          = new TData <ComputerInfo>();
            ComputerInfo         computerInfo = null;

            try
            {
                computerInfo         = ComputerHelper.GetComputerInfo();
                computerInfo.RunTime = DateTimeHelper.FormatTime(Environment.TickCount);
            }
            catch (Exception ex)
            {
                LogHelper.WriteWithTime(ex);
                obj.Message = ex.Message;
            }
            obj.Result = computerInfo;
            obj.Tag    = 1;
            return(Json(obj));
        }
Esempio n. 10
0
        /// <summary>
        /// Initializes the <see cref="LogFolder"/>.
        /// </summary>
        private void InitializeAsync()
        {
            Task.Run(() =>
            {
                _initialized = true;
                AppInfo.BaseAppInfo.Log.QueueLogMessageAsync($"Initializing log folder with path \"{Folder.FullName}\".", LogMessageType.Verbose);

                //Extract computer name from log folder path
                var chars         = Folder.FullName.ToCharArray();
                var startingIndex = 2;
                for (int i = startingIndex; i < Folder.FullName.Length; i++)
                {
                    if (chars[i] == '\\')
                    {
                        ComputerName = Folder.FullName.Substring(startingIndex, i - startingIndex);
                        break;
                    }
                }

                //Get remote computer offset from local time
                try
                {
                    RemoteComputerOffsetFromLocalTime = ComputerHelper.GetRemoteComputerOffsetFromLocalTime(ComputerName);
                }
                catch (Exception ex)
                {
                    AppInfo.BaseAppInfo.Log.QueueLogMessageAsync($"Could not get remote computer \"{ComputerName}\"'s offset from local time. Error message: {ex.Message}", LogMessageType.Warning);
                }

                //Determine whether or not log folder exists
                Folder?.Refresh();
                if (!Folder.Exists)
                {
                    HasError     = true;
                    Notification = new Notification(this, $"Could not find log folder with path \"{Folder.FullName}\".");
                    AppInfo.BaseAppInfo.Log.QueueLogMessageAsync(Notification.Message, LogMessageType.Error);
                    return;
                }

                LoadLogFilesAsync();
            });
        }
Esempio n. 11
0
        public async Task <AlwaysResult> Start()
        {
            AlwaysResult obj = new AlwaysResult();

            try
            {
                ServerStateEntity entity = new ServerStateEntity();
                var computer             = ComputerHelper.GetComputerInfo();
                entity.F_ARM     = computer.RAMRate;
                entity.F_CPU     = computer.CPURate;
                entity.F_IIS     = "0";
                entity.F_WebSite = _hostingEnvironment.ContentRootPath;
                await _server.SubmitForm(entity);

                obj.state   = ResultType.success.ToString();
                obj.message = "服务器状态更新成功!";
            }
            catch (Exception ex)
            {
                obj.state   = ResultType.error.ToString();
                obj.message = "服务器状态更新失败!" + ex.Message;
            }
            return(obj);
        }
        protected override ServiceListDataItem[] GetOutputData(DataItemBase[] inputDataItems)
        {
            try
            {
                string opMessages = "";
                bool   IsCluster  = false;
                if (supportClusteredService)
                {
                    IsCluster = ServiceHelper.IsCluster(".");
                }
                long computerUpTimeMin = 0;
                if (supportDelayedStart)
                {
                    computerUpTimeMin = ComputerHelper.GetUptime(".") / 60;
                }

                // get all clustered services and their on-line statuses
                List <ClusteredServiceInfo> clusteredServices = new List <ClusteredServiceInfo>();
                if (IsCluster)
                {
                    try
                    {
                        using (WMIQuery query = new WMIQuery(new ManagementScope("\\\\.\\root\\MSCluster"), "SELECT * FROM MSCluster_Resource"))
                        {
                            foreach (ManagementBaseObject serviceData in query.Select())
                            {
                                if (serviceData["Type"].ToString() != "Generic Service")
                                {
                                    continue;
                                }
                                clusteredServices.Add(new ClusteredServiceInfo
                                {
                                    nodeName           = serviceData["OwnerNode"].ToString(),
                                    serviceDisplayName = serviceData["Name"].ToString(),
                                    serviceName        = ((ManagementBaseObject)serviceData["PrivateProperties"])["ServiceName"].ToString(),
                                    Offline            = (uint)serviceData["State"] == 3
                                });
                                serviceData.Dispose();
                            }
                        }
                    }
                    catch (Exception cluster_e)
                    {
                        string msg = "Failed to query clustered services information.";
                        ModuleErrorSignalReceiver(ModuleErrorSeverity.DataLoss, ModuleErrorCriticality.Continue, cluster_e, msg);
                        opMessages += msg + "; ";
                    }
                }

                // list all services
                List <ServiceInfo> allServices        = new List <ServiceInfo>();
                StringComparer     ignoreCaseComparer = StringComparer.OrdinalIgnoreCase;
                foreach (ServiceController service in string.IsNullOrWhiteSpace(QueryService) ? ServiceController.GetServices() : new ServiceController[] { new ServiceController(QueryService) })
                {
                    try
                    {
                        ServiceInfo newInstance = new ServiceInfo()
                        {
                            IsClustered = clusteredServices.Exists(x => ignoreCaseComparer.Compare(x.serviceName, service.ServiceName) == 0),
                            NodeName    = ComputerHelper.GetMachineDNSName(), // default to local host
                            DisplayName = service.DisplayName,
                            Name        = service.ServiceName,
                            Status      = service.Status.ToString(),
                            Type        = (int)service.ServiceType,
                        };
                        FillServiceValuesFromRegistry(newInstance, service, QueryParameters);
                        if (newInstance.IsClustered)
                        {
                            newInstance.NodeName         = clusteredServices.Find(x => ignoreCaseComparer.Compare(x.serviceName, service.ServiceName) == 0).nodeName;
                            newInstance.IsClusterOffline = clusteredServices.Find(x => ignoreCaseComparer.Compare(x.serviceName, service.ServiceName) == 0).Offline;
                        }
                        allServices.Add(newInstance);
                    }
                    catch (Exception e)
                    {
                        ModuleErrorSignalReceiver(ModuleErrorSeverity.DataLoss, ModuleErrorCriticality.Continue, e, $"Failure while reading service {service.DisplayName}. Skipping.");
                    }
                    finally
                    {
                        service.Dispose();
                    }
                }

                // query advanced dependency
                ServiceController[] allNativeServices = null;
                if (QueryParameters)
                {
                    try
                    {
                        allNativeServices = ServiceController.GetServices();
                        foreach (ServiceInfo resultService in allServices)
                        {
                            ServiceController nativeServiceInstance = allNativeServices.Where(ns => ns.ServiceName == resultService.Name).FirstOrDefault();
                            if (nativeServiceInstance == null)
                            {
                                continue; // if the service was deleted right before the second query
                            }
                            if (nativeServiceInstance.ServicesDependedOn != null)
                            {
                                resultService.DependOn = new List <DependOnRecord>();
                                foreach (ServiceController dep_on in nativeServiceInstance.ServicesDependedOn)
                                {
                                    resultService.DependOn.Add(GetDependOnRecord(dep_on));
                                }
                            }
                            if (nativeServiceInstance.DependentServices != null)
                            {
                                resultService.Dependant = new List <DependOnRecord>();
                                foreach (ServiceController dep in nativeServiceInstance.DependentServices)
                                {
                                    resultService.Dependant.Add(GetDependantRecord(dep));
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        ModuleErrorSignalReceiver(ModuleErrorSeverity.DataLoss, ModuleErrorCriticality.Continue, e, $"Failure while walking through service dependencies. Skipping.");
                    }
                }
                finally
                {
                    if (allNativeServices != null)
                    {
                        foreach (ServiceController ns in allNativeServices)
                        {
                            try { ns.Dispose(); } catch { }
                        }
                    }
                }

                return(new ServiceListDataItem[]
                {
                    new ServiceListDataItem(new ServiceList
                    {
                        Services = allServices,
                        ErrorCode = 0,
                        ErrorMessage = opMessages
                    })
                });
            }
Esempio n. 13
0
        private void InitializeAsync()
        {
            Task.Run(() =>
            {
                AppInfo.BaseAppInfo.Log.QueueLogMessageAsync($"Initializing log file with network path \"{NetworkFile.FullName}\".", LogMessageType.Verbose);

                //Get file info attributes needed for displaying info
                if (NetworkFile.Exists)
                {
                    LastWriteTime = NetworkFile.LastWriteTime;
                    SizeInBytes   = NetworkFile.Length;
                }
                else
                {
                    LastWriteTime = DateTime.MinValue;
                    SizeInBytes   = -1;
                }

                //Extract computer name from log folder path
                var chars         = NetworkFile.Directory.FullName.ToCharArray();
                var startingIndex = 0;
                if (chars.Length > 2 && chars[0] == '\\' && chars[1] == '\\')
                {
                    startingIndex = 2;
                    for (int i = startingIndex; i < NetworkFile.Directory.FullName.Length; i++)
                    {
                        if (chars[i] == '\\')
                        {
                            ComputerName = NetworkFile.Directory.FullName.Substring(startingIndex, i - startingIndex);
                            break;
                        }
                    }
                }
                else
                {
                    ComputerName = Environment.MachineName;
                }

                //Get computer offset from local time
                try
                {
                    ComputerOffsetFromLocalTime = ComputerHelper.GetRemoteComputerOffsetFromLocalTime(ComputerName);
                }
                catch (Exception ex)
                {
                    AppInfo.BaseAppInfo.Log.QueueLogMessageAsync($"Could not get computer \"{ComputerName}\"'s offset from local time. Error message: {ex.Message}", LogMessageType.Warning);
                }

                //Initialize filesystem watcher
                if (_fileSystemWatcher == null && NetworkFile.Exists)
                {
                    _fileSystemWatcher = new FileSystemWatcher(NetworkFile.Directory.FullName, NetworkFile.Name)
                    {
                        EnableRaisingEvents = true,
                    };
                    _fileSystemWatcher.Changed += File_Changed;
                }

                AppInfo.BaseAppInfo.Log.QueueLogMessageAsync($"Log file with network path \"{NetworkFile.FullName}\" initialized.", LogMessageType.Verbose);
            });
        }
Esempio n. 14
0
        private static int Main(string[] args)
        {
            try
            {
                try
                {
                    CefRuntime.Load();
                }
                catch (DllNotFoundException ex)
                {
                    MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(1);
                }
                catch (CefRuntimeException ex)
                {
                    MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(2);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(3);
                }

                var mainArgs = new CefMainArgs(args);
                var app      = new CefApplication();

                int exitCode = CefRuntime.ExecuteProcess(mainArgs, app);
                if (exitCode != -1)
                {
                    return(exitCode);
                }

                var settings = new CefSettings
                {
                    SingleProcess            = false,
                    MultiThreadedMessageLoop = true,
                    LogSeverity = CefLogSeverity.Disable,
                    LogFile     = "CefGlue.log",
                };

                CefRuntime.Initialize(mainArgs, settings, app);

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                if (!settings.MultiThreadedMessageLoop)
                {
                    Application.Idle += (sender, e) => { CefRuntime.DoMessageLoopWork(); };
                }
                InitDevExpress();
                UpdateHelper.ForcedUpdate();
                Application.ThreadException += Application_ThreadException;
                AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
                BaseSystemInfo.StartupPath         = Application.StartupPath;
                BaseSystemInfo.CustomerCompanyName = "申通快递";
                BaseSystemInfo.SoftFullName        = "申通打印专家";
                BaseSystemInfo.SoftName            = BaseSystemInfo.SoftFullName;
                BaseSystemInfo.MailUserName        = "******";
                BaseSystemInfo.MailServer          = "smtp.qq.com";
                BaseSystemInfo.MailPassword        = "******";
                BaseSystemInfo.SystemCode          = "ZTOPrint";
                //  ZipFile();
                Synchronous.Synchronous.BeforeLogOn();
                // new FrmWaiting().ShowDialog();
                CheckPrinterWindowsServer();
                CheckInitData();
                var t = new Task(() => ComputerHelper.GetServerDataTime());
                t.Start();

                // Application.Run(new FrmLogOnByMobile());
                Application.Run(new FrmMain());
                return(0);
            }
            catch (Exception ex)
            {
                LogUtil.WriteException(ex);
                MessageBox.Show(ex.Message);
            }
            CefRuntime.Shutdown();
            return(0);
        }
Esempio n. 15
0
        private async void btnSave_Click(object sender, RoutedEventArgs e)
        {
            Mouse.OverrideCursor = Cursors.Wait;
            try
            {
                if (Validate())
                {
                    //guardamos la informacion de contacto
                    _guest.guloInfo = _userLoguedo.User.peID;
                    _guest.guPRInfo = cboguPRInfo.SelectedValue.ToString();
                    _guest.guInfoD  = Convert.ToDateTime(txtguInfoD.Text).Date;
                    _guest.guInfo   = true;

                    //Enviamos los parametros para que guarde los cambios del guest y el log del Guest y de igual forma los moviemientos de este (SaveGuestMovement).
                    //Si hubo un erro al ejecutar el metodo SaveGuestContact nos devolvera 0, indicando que ningun paso
                    //se realizo, es decir ni se guardo el Guest, el Log ni los movimientos de este, siendo así ya no modificamos la variable
                    //_wasSaved que es la que indica que se guardo el Avail.
                    if (await BRGuests.SaveGuestContact(_guest, _userPrimero.LeadSource.lsHoursDif, _userLoguedo.User.peID,
                                                        EnumGuestsMovementsType.Contact, Environment.MachineName, ComputerHelper.GetIpMachine()) != 0)
                    {
                        //Modificamos las variable indicando que si se guardo la variable
                        _wasSave            = true;
                        chkguInfo.IsChecked = true;
                    }
                    else
                    {
                        UIHelper.ShowMessage("There was an error saving the information, consult your system administrator",
                                             MessageBoxImage.Error, "Information can not keep");
                    }
                    Close();
                }
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
            Mouse.OverrideCursor = null;
        }
Esempio n. 16
0
        //private static PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");

        #region 视图功能
        public IActionResult ServerIndex()
        {
            ViewBag.TotalRAM = ComputerHelper.GetTotalMemory();
            return(View());
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            //using (var db = new Models.ArktinMonitorDataAccess())
            //{
            //    var email = Console.ReadLine();
            //    var name = Console.ReadLine();
            //    if (!(db.WebAccounts.Any(a => a.Email == email)))
            //    {
            //        var webAccount = new Models.WebAccount()
            //        {
            //            Name = name,
            //            Email = email
            //        };
            //        db.WebAccounts.Add(webAccount);
            //        db.SaveChanges();
            //    }
            //    var computer = ComputerHelper.GetComputer();
            //    computer.WebAccountId = db.WebAccounts.FirstOrDefault(wa => wa.Email == email).WebAccountId;
            //    db.Computers.Add(computer);
            //    db.SaveChanges();
            //    foreach (var computerDisk in computer.Disks)
            //    {
            //        computerDisk.ComputerId = computer.ComputerId;
            //        db.Disks.Add(computerDisk);
            //    }
            //    foreach (var computerUser in computer.ComputerUsers)
            //    {
            //        computerUser.ComputerId = computer.ComputerId;
            //        db.ComputerUsers.Add(computerUser);
            //    }
            //    db.SaveChanges();
            //}
            var serverClient = new ServerClient();
            var comp         = ComputerHelper.GetComputer().ToResourceModel();

            comp.ComputerId = 0;

            try
            {
                Authorization.RenewBearerToken("*****@*****.**", "[REDACTED]");
                var sc       = serverClient.SendToServer("api/Computers", comp, Authorization.GetBearerToken.AccessToken);
                var response = sc.Result;
                //var content = response.Content.ReadAsAsync<ComputerResourceModel>().Result;
                LocalLogger.Log($"Status: {response.StatusCode}");
                //Console.WriteLine(content.Dump());
            }
            catch (Exception e)
            {
                LocalLogger.Log("Local", e);
            }
            //var computer2 = ComputerHelper.GetComputer();
            //JsonHelper.SerializeToJsonFile(Path.Combine(Settings.LocalPath, "computer.json"), computer2);
            //LocalLogger.Log("test");
            //LocalLogger.Log(computer2.Dump());
            //Authorization.RenewBearerToken("*****@*****.**", "[REDACTED]");
            //var token = Authorization.GetBearerToken;
            //Console.WriteLine(token.Dump());
            //Console.WriteLine(token.Expires.ToLongDateString() + " " + token.Expires.ToLongTimeString());

            Console.Read();
        }
Esempio n. 18
0
        private static string[] GetCertificateBindings(X509Certificate2 cert)
        {
            List <string> result = new List <string>();

            #region SCOM
            const string channelCertificateSerialNumber = @"HKLM\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Machine Settings\ChannelCertificateSerialNumber";
            if (RegistryHelper.RegistryValueExists(".", channelCertificateSerialNumber))
            {
                byte[] certSN = (byte[])RegistryHelper.ReadRegistryValue(".", channelCertificateSerialNumber);
                Array.Reverse(certSN);
                string certSNStr = BitConverter.ToString(certSN).Replace("-", string.Empty);
                if (cert.SerialNumber.ToUpperInvariant() == certSNStr.ToUpperInvariant())
                {
                    result.Add("SCOM");
                }
            }
            #endregion

            #region SCCM
            string    currentCertThumbprint = null;
            DataTable clientIdentity;
            try
            {
                clientIdentity = ComputerHelper.GetQueryWMI(".", "SELECT * FROM CCM_ClientIdentificationInformation", "\\root\\ccm");
            }
            catch
            {
                clientIdentity = null;
            }

            if (clientIdentity != null && clientIdentity.Rows.Count > 0)
            {
                currentCertThumbprint = clientIdentity.Rows[0]["ReservedString1"].ToString();
            }
            if (currentCertThumbprint != null && currentCertThumbprint.ToUpperInvariant() == cert.Thumbprint.ToUpperInvariant())
            {
                result.Add("SCCM");
            }
            #endregion

            #region HTTP
            try
            {
                RegistryKey bindingsKey = RegistryHelper.GetRegistryKey(".", @"HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslBindingInfo");
                foreach (string subKeyName in bindingsKey.GetSubKeyNames())
                {
                    RegistryKey portBindingKey = bindingsKey.OpenSubKey(subKeyName, false);
                    byte[]      certHash       = (byte[])portBindingKey.GetValue("SslCertHash");
                    string      certHashStr    = BitConverter.ToString(certHash).Replace("-", string.Empty);
                    if (cert.Thumbprint.ToUpperInvariant() == certHashStr.ToUpperInvariant())
                    {
                        result.Add("HTTP");
                        break;
                    }
                }
            }
            catch { }
            #endregion

            return(result.ToArray());
        }