|
Программирование >> Автоматически обновляемые приложения
Для использования этого примера вам нужно указать реальное имя домена и учетную запись, которая имеет права администратора. Таюке вам нужно ввести реальный пароль, используемый учетной записью. Естественно, необходимо использовать реальное имя машины в вашей сети. В нашем примере это машина под именем buhgalter. Теперь, после соединения с удаленной машиной, вы можете писать код, извлекающий нужную информацию. Если же у вас нет возможности проверять примеры, которые будут описаны ниже, на удаленных компьютерах, то вы можете протестировать их на своей локальной машине. В этом случае код станет чуть проще (листинг 12.2). Листинг 12.2. Использование WMI на локальной машине ManagementScope scope = new ManagementScope( \\\\localhost\\root\\cimv2 ); scope.Connect(); Как видите, для работы с локальным компьютером нет нужды указывать учетную запись и пароль, а таюке в качестве имени машины достаточно указать localhost. Информация об операционной системе с помощью пространства имен win32 0peratingSystem МОЖНО узнать свойства операционной системы - название системы, версию системы, путь к системной папке, имя машины, имя изготовителя системы и многое другое. Пример приведен в листинге 12.3. введите домен и учетную запись options.Username = @ mgu\administrator ; введите пароль options.Password = 12345678 ; Укажите имя машины вместо buhgalter ManagementScope scope = new ManagementScope(@ \\buhgalter\root\cimv2 , options); scope.Connect(); MessageBox.Show( Соединение установлено ); \ Листинг 12.3. Получение информации об операционной системе private void button2 Click(object sender, EventArgs e) { Соединяемся с удаленной машиной ConnectionOptions options = new ConnectionOptions(); options .Username = (3 domen\admin ; options.Password = pass ; ManagementScope scope = new ManagementScope( \\\\myserver\\root\\cimv2 , options); scope.Connect(); Запрашиваем информацию об операционной системе ObjectQuery query = new ObjectQuery( SELECT * FROM Win32 OperatingSystem ); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); ManagementObjectCollection queryCollection = searcher.Get(); foreach (ManagementObject m in queryCollection) Вьшодим информацию в текстовое поле string nl = Environment.NewLine; textBoxl.Text = Имя машины : + m[ CSName ] + nl; textBoxl.Text += Операционная система: + m[ Caption ] + nl; textBoxl.Text += Версия ОС: + m[ Version ] + nl; textBoxl.Text += Язык операционной системы: + m[ OSLanguage ] + nl; textBoxl.Text += Зарегистрированный пользователь: + m[ RegisteredUser ] + nl; textBoxl.Text += Серийный номер продукта: + m[ SerialNumber ] + nl; textBoxl.Text += Время установки: + ManagementDateTimeConverter.ToDateTime( m[ InstallDate ].ToString0) + nl; textBoxl.Text += Папка Windows: + m[ WindowsDirectory ] + nl; textBoxl.Text += Системная папка: + m[ SystemDirectory ] + nl; textBoxl.Text += Производитель: + m[ Manufacturer ] + nl; textBoxl.Text += Доступная физическая память: + m[ FreePhysicalMemory ] + nl; Хотелось бы обратить ваше внимание, что в Windows Vista появилось новое свойство для класса Win32 OperatingSystem: OperatingSystemSKU, КОТОрыЙ содержит номер от О до 25. С помощью этого свойства можно определить редакцию Windows Vista. Вот неполный список соответствий возвращаемого номера и названия редакции операционной системы: П О - не определено; П 1 - Ultimate Edition; П 2 - Home Basic Edition; П 3 - Home Basic Premium Edition; П 4 - Enterprise Edition; П 5 - Home Basic N Edition. Информация о компьютере При помощи пространства имен win32 ComputerSystem можно узнать, какому домену принадлежит машина, имя изготовителя и модель компьютера. Как это сделать, показано в листинге 12.4. i Листинг 12Л Получение информации о компьютере private void butComputer Click(object sender, EventArgs e) { ConnectionOptions options = new ConnectionOptions(); Используйте ваши реальные учетные записи и пароли options.Username = @ gamma\admin ; options.Password = mypass ; ManagementScope scope = new ManagementScope( \\\\boss\\root\\cimv2 , options); scope.Connect 0; Запрашиваем информацию о компьютере ObjectQuery query = new ObjectQuery( textBoxl.Text += Текущее число процессов: + m[ NuinberOf Processes ] + nl;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |