Программирование >>  Автоматически обновляемые приложения 

1 ... 117 118 119 [ 120 ] 121 122 123 ... 170


Для использования этого примера вам нужно указать реальное имя домена и учетную запись, которая имеет права администратора. Таюке вам нужно ввести реальный пароль, используемый учетной записью. Естественно, необходимо использовать реальное имя машины в вашей сети. В нашем примере это машина под именем 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;



1 ... 117 118 119 [ 120 ] 121 122 123 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика