public List <VersionInfo> GetVersions()
        {
            // запрос версий
            var windows = WmiHelper.First(WmiHelper.QueryInfo("Win32_OperatingSystem"));
            var bdb     = getDbVersion("BaseComplex", "select max(Version) from Db_verson");
            var bdb2    = getDbVersion("BaseComplex2", "select max(Version) from Db_version");
            var aisurt  = getAisurtVersion();

            // запись результата
            return(new List <VersionInfo>
            {
                new VersionInfo("ОС Windows", string.Format("{0} {1}", windows["Caption"], windows["CSDVersion"])),
                new VersionInfo("SQL Server", DatabaseHelper.Instance.GetServerVersion(ConnectionWrapper.CreateLoginPassword(string.Empty, "master", "sa", string.Empty).ConnectionString)),
                new VersionInfo("АС БДБ", prepare(bdb)),
                new VersionInfo("АМ КЗ", prepare(bdb2)),
                new VersionInfo("АИС УРТ", aisurt),
                new VersionInfo("Aux Service", Assembly.GetExecutingAssembly().GetName().Version.ToString())
            });
        }
        public SystemInfo GetSystemInfo()
        {
            var info = new SystemInfo();

            try
            {
                var cpu = WmiHelper.First(WmiHelper.QueryInfo("Win32_Processor"));
                info.Processor = new CPU
                {
                    Name     = (string)cpu["Name"],
                    SpeedMHz = (uint)cpu["CurrentClockSpeed"]
                };

                var memory = WmiHelper.First(WmiHelper.QueryInfo("Win32_LogicalMemoryConfiguration"));
                info.Memory = (uint)memory["TotalPhysicalMemory"] * 1024;

                var motherboard = WmiHelper.First(WmiHelper.QueryInfo("Win32_BaseBoard"));
                info.MotherBoard = new MotherBoard
                {
                    Manufacturer = (string)motherboard["Manufacturer"],
                    Model        = (string)motherboard["Product"]
                };

                foreach (var disk in Environment.GetLogicalDrives())
                {
                    var drive = new DriveInfo(disk);
                    if (drive.IsReady)
                    {
                        info.HDD.Add(new Disk
                        {
                            Name       = drive.Name,
                            Label      = drive.VolumeLabel,
                            TotalSpace = drive.TotalSize,
                            FreeSpace  = drive.AvailableFreeSpace
                        });
                    }
                }

                info.Printers.AddRange(PrintInfo.GetPrinterList());
                foreach (var printer in WmiHelper.QueryInfo("Win32_Printer"))
                {
                    string name        = (string)printer.Properties["Caption"].Value;
                    var    printerInfo = info.Printers.Find(p => p.Caption == name);
                    if (printerInfo != null)
                    {
                        printerInfo.Model = (string)printer.Properties["DriverName"].Value;
                    }
                }

                info.HostName = SystemInformation.ComputerName;

                foreach (var address in Dns.GetHostEntry(info.HostName).AddressList)
                {
                    info.IPAddresses.Add(address.ToString());
                }

                info.UserName = SystemInformation.UserName;                 // можно также через System.Enironment.UserName
            }
            catch
            { }
            return(info);
        }