Работа с объектами 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!