Работа с объектами SWbemObjectSet и SWbemObject



Рассмотренные выше методы объекта SWbemServices возвращают коллекции объектов SWbemObjectSet или "одиночные" объекты SWbemObject. Объекты SWbemObjectSet и SWbemObject в свою очередь обладают набором специфических свойств и методов. Коллекция SWbemObjectSet содержит объекты SWbemObject, которые можно перебрать в цикле.

Instances_([iFlags = 16], [objWbemNamedValueSet = null])- аналогично WbemServices

ExecMethod_(strMethodName, [objwbemInParams = null], [iFlags = 0], [objwbemNamedValueSet = null]) - аналогично WbemServices

SpawnInstance_([iFlags = 0])

Cоздаётновыйпустойэкземпляркласса.Параметр iFlags зарезервирован и должен содержать ноль.

Put_([iFlags = 0], [objwbemNamedValueSet = null])

Создаёт или обновляет класс или экземпляр класса после того, как вы изменяете его любые свойства и возвращает объект SWbemObjectPath. Примечание: чтобы узнать, является ли свойство изменяемым, нужно проверить квалификатор Write этого свойства - если данный квалификатор имеется и его значение равно True, свойство доступно для записи.

iFlags - опции, комбинация флагов. Некоторые возможные значения:

wbemChangeFlagUpdateOnly(1) - только обновление. Для успешного исполнения класс или образец должны существовать.

wbemChangeFlagCreateOnly(2) - только создание. Для успешного исполнения класс или образец ещё не должны существовать.

wbemFlagReturnImmediately(16) - немедленный возврат результата (полусинхрон.режим).

Пример:

colDisks = new Enumerator(objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DeviceID = 'f:'"));

Disk=colDisks.item();

Disk.VolumeName = "New"; //сменаметкитома

Disk.Put_();//запись изменений

Methods_ Содержит коллекцию методов класса (объект SWbemMethodSet). Только чтение.

Properties_ Содержит коллекцию свойств класса (объект SWbemPropertySet). Только чтение.

Qualifiers_  Содержит коллекцию квалификаторов класса (объект SWbemQualifierSet). Только чтение.

Пример: Перебор свойств класса

bjClass = GetObject("winmgmts:\\\\.\\Root\\CIMV2:Win32_Process");

Prop=new Enumerator (objClass.Properties_);

for (; !Prop.atEnd(); Prop.moveNext())

{ objItemC = Prop.item();

WScript.Echo (objItemC.Name);

}

Требования к выполнению лабораторной работы

Необходимо написать jscript-скрип, реализующий выполнение приведенных ниже заданий, с использованием заданных классов WMI. Для определения свойств классов возможно использовать приложение 2 или утилиту Wbemtest.exe, находящуюся по адресу \Windows\System32\Wbem\.Для выполнения скрипта использовать cscript или wscript, запускаемые из cmd.exe, если необходимо, с правами администратораанияолнение приведенные ов нийботыриведены в приложении 2..

Варианты заданий

Задания Используемые классы
  1 Вывести на экран имена запущенных системных служб. Переименовать папку, заданную в параметре. Новое имя указано во втором параметре. Win32_Service   Win32_Directory
2 Вывести на экран имена активных процессов и информацию о заданном логическом диске Win32_Process Win32_LogicalDisk
  3 Закрыть все экземпляры приложения, заданного параметром. Вывести на экран имена директорий корневого каталога. Win32_Process   Win32_Directory
4 Вывести информацию о материнской плате. Выполнить смену метки тома указанного диска. Win32_Baseboard Win32_LogicalDisk
  5 Вывести на экран информацию о процессоре. Определить размер заданного логического диска. Win32_Processor Win32_LogicalDisk
  6 Вывести информацию о логических дисках, а также о файлах, находящихся в указанной директории Win32_LogicalDisk CIM_DataFile
7 Вывести на экран информацию о мониторе. Вывести на экран имена поддиректорий указанной параметром директории Win32_DesktopMonitor Win32_Directory
8 Вывести информацию о видеокарте и о директориях, соответствующих заданной маске Win32_VideoController Win32_Directory
9 Вывести информацию о настройках BIOS. Определить скрытые файлы в корне указанного параметром диска Win32_BIOS CIM_DataFile
10 Вывести информацию о манипуляторе мышь, а также информацию о файлах с заданным в параметре расширением Win32_PointingDevice CIM_DataFile
11 Вывести информацию о клавиатуре и значение заданной переменной окружения Win32_Keyboard Win32_Environment
12 Вывести информацию о физических дисках, а также информацию о файлах-параметрах – имя, дата создания, размер Win32_DiskDrive CIM_DataFile
13 Вывести информацию об операционной системе, а также список файлов, соответствующих заданной параметром маске-имени Win32_OperationSystem   CIM_DataFile
14 Вывести информацию о файле, заданном параметром, а также имена и значения переменных окружения CIM_DataFile Win32_Environment
15 Запустить заданное параметром приложение Вывести на экран список файлов только для чтения в корне указанного диска Win32_Process CIM_DataFile
16 Вывести информацию о методах класса, заданного параметром, а также состав корневой директории диска С:\   CIM_DataFile
17 Вывести информацию о свойствах класса, заданного параметром. Определить команды, выполняемые при загрузке компьютера.     Win32_StartupCommand
18 Вывести информацию о квалификаторах заданного параметрами метода и класса Вывести информацию о сетевом адаптере компьютера.     Win32_NetworkAdapter
19 Вывести информацию о доступных классах заданного параметром пространства имен, а также информацию о логических дисках. Метод SubclassesOf() Win32_DiskPartition
20 Вывести информацию о файлах для чтения диска С: Определить логические диски с файловой системой, заданной в параметре. CIM_DataFile Win32_LogicalDisk

Пример выполнения задания

Задание:

Вывести названия логических дисков с файловой системой, заданной в параметре (класс Win32_LogicalDisk) и информацию о командах, выполняемых при загрузке компьютера (класс Win32_StartupCommand).

Текстскрипта:

argv=WScript.Arguments;

WScript.Echo("Логические диски с файловой системой, заданной параметром: "+argv(0));

if (argv.Length==0) {WScript.Echo("no parameters");}

else{

a=argv(0);

objClass = GetObject("winmgmts:\\\\.\\Root\\CIMV2");

 

Disks=objClass.ExecQuery("Select * from Win32_LogicalDisk Where FileSystem = '"+a+"'");

P=new Enumerator(Disks);

for (; !P.atEnd(); P.moveNext())

{ objItemC = P.item();

s = objItemC.Caption;

WScript.Echo (s);

 }

}

WScript.Echo("информация о командах начальной загрузки:");

objClass = GetObject("winmgmts:\\\\.\\Root\\CIMV2");

enum_start=objClass.ExecQuery("Select * from Win32_StartupCommand");

Prop=new Enumerator (enum_start);

for (; !Prop.atEnd(); Prop.moveNext())

{ objItemC = Prop.item();

WScript.Echo (objItemC.Command);

}

Результаты работы скриптаscript0.js:

Параметры запуска:>cscriptscript0.jsntfs


Дата добавления: 2018-04-05; просмотров: 835; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!