Главная / Операционные системы /
Командная строка и сценарии Windows / Тест 12
Упражнение 1:
Номер 1
Каким файлом реализована библиотека поддержки сценариев WMI?
Ответ:
(1) winmgmtr.dll
(2) wbemdisp.dll
(3) wmiprov.dll
Номер 2
Какой компонент операционной системы отвечает за обращение к объектам WMI из сценариев WSH?
Ответ:
(1) библиотека поддержки сценариев WMI (wbemdisp.dll)
(2) провайдер подсистемы Win32 (wmiprov.dll)
(3) оболочка WMIC (wmic.exe)
Номер 3
Какая библиотека отвечает за поддержку объектов-серверов автоматизации, позволяющих из сценария WSH работать с классами и объектами пространства имен WMI?
Ответ:
(1) winmgmtr.dll
(2) wbemdisp.dll
(3) wmiprov.dll
Упражнение 2:
Номер 1
Какой объект библиотеки поддержки сценариев WMI позволяет подключиться к пространству имен WMI на локальной или удаленной машине?
Ответ:
(1) SWbemLocator
(2) SWbemServices
(3) SWbemObject
Номер 2
Какой объект библиотеки поддержки сценариев WMI позволяет удалять экземпляры классов в определенном пространстве имен WMI?
Ответ:
(1) SWbemLocator
(2) SWbemServices
(3) SWbemObject
Номер 3
Методы какого объекта библиотеки поддержки сценариев WMI позволяют подключиться к пространству имен WMI?
Ответ:
(1) SWbemObject
(2) SWbemServices
(3) SWbemLocator
Упражнение 3:
Номер 1
Каким образом из сценария WSH можно подключиться к определенному пространству имен WMI?
Ответ:
(1) с помощью объекта SWbemLocator
(2) с помощью объекта SWbemSevices
(3) с помощью моникера WMI
Номер 2
Предположим, что вы зарегистрированы в системе под учетной записьюUser1и вам необходимо из сценария WSH подключиться к пространству имен WMI на удаленной машине от имени учетной записиSuperAdmin. Какой вариант подключения следует выбрать?
Ответ:
(1) с помощью метода ConnectServer объекта SWbemLocator
(2) с помощью моникера WMI
Номер 3
Каким образом на локальной машине можно подключиться к пространству имен WMI от имени учетной записи, отличной от текущей учетной записи?
Ответ:
(1) с помощью метода ConnectServer объекта SWbemLocator
(2) с помощью моникера WMI
(3) на локальной машине подключение к WMI всегда производится от имени текущей учетной записи
Упражнение 4:
Номер 1
Какой программный идентификатор (ProgID) имеет объектSWbemLocator?
Ответ:
(1) WbemScripting.SWbemLocator
(2) WMIScripting.SWbemLocator
(3) WMIScript.SWbemLocator
Номер 2
Каким образом из сценария на языке VBScript создать экземпляр объекта SWbemLocator?
Ответ:
(1) Set objLocator = CreateObject("WbemScripting.SWbemLocator")
(2) Set objLocator = CreateObject("WMIScripting.SWbemLocator")
(3) Set objLocator = CreateObject("WMIScript.SWbemLocator")
Номер 3
Каким образом из сценария на языке JScript создать экземпляр объекта SWbemLocator?
Ответ:
(1) objLocator = new ActiveXObject("WbemScripting.SWbemLocator");
(2) objLocator = new ActiveXObject("WMIScripting.SWbemLocator");
(3) objLocator = new ActiveXObject("WMIScript.SWbemLocator");
Упражнение 5:
Номер 1
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
Ответ:
(1) Set objService = GetObject("WinMgmts:\.RootCIMV2")
(2) Set objService = GetObject("WinMgmts:RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\.RootCIMV2")
Номер 2
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1?
Ответ:
(1) Set objService = GetObject("WinMgmts:\Comp1RootCIMV2")
(2) Set objService = CreateObject("WinMgmts:\Comp1RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\Comp1RootCIMV2")
Номер 3
Какой из приведенных ниже моникеров WMI задает путь к объекту, соответствующему службе Messenger, запущенной на локальном компьютере?
Ответ:
(1) "WinMgmts:\.RootCIMV2:Win32_Service.Name='Messenger'"
(2) "WinMgmts:RootCIMV2:Win32_Service.Name='Messenger'"
(3) "WinMgmts:\.RootCIMV2Win32_Service.Name='Messenger'"
Упражнение 6:
Номер 1
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
Ответ:
(1) Set objService = GetObject("WinMgmts:\.RootCIMV2")
(2) Set objService = GetObject("WinMgmts:RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\.RootCIMV2")
Номер 2
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1?
Ответ:
(1) Set objService = GetObject("WinMgmts:\Comp1RootCIMV2")
(2) Set objService = CreateObject("WinMgmts:\Comp1RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\Comp1RootCIMV2")
Номер 3
Какой из приведенных ниже моникеров WMI нужно использовать для подключения к пространству имен CIMV2 на рабочей станции \Comp1 с дополнительными привилегиями на выключение и удаленное выключение компьютера?
Ответ:
(1) "WinMgmts: {(Shutdown,RemoteShutdown)}!\Comp1RootCIMV2"
(2) "WinMgmts: {Shutdown,RemoteShutdown}!\Comp1RootCIMV2"
(3) "WinMgmts: {(!Shutdown,!RemoteShutdown)}!\Comp1RootCIMV2"
Аннотация: Рассматриваются механизм работы и основные типы сценариев WSH, использующихся для доступа к WMI. Даются примеры сценариев для подключения к подсистеме WMI на локальном или удаленном компьютере, получения экземпляров объектов WMI и вызова их методов
Сценарии WSH для работы с объектной моделью WMI
Здесь мы подробно остановимся на механизме работы подобных сценариев, в основе которого лежит библиотека поддержки сценариев WMI (WMI Scripting Library), а также рассмотрим на примерах все основные типы сценариев WMI.
Сразу отметим, что все сценарии данной лекции написаны на языке VBScript, который позволяет напрямую работать с выходными параметрами методов объектов WMI, а также обрабатывать элементы коллекций без создания дополнительного объекта Enumerator.
Объектная модель библиотеки поддержки сценариев WMI
Итак, для того чтобы получить доступ к WMI с помощью сценариев, необходима специальная библиотека поддержки сценариев WMI (WMI Scripting Library), которая располагается в файле wbemdisp.dll в каталоге %SystemRoot%System32Wbem (в Windows Server 2003, Windows XP, Windows 2000 и Windows NT) или в каталоге %WinDir%SystemWbem (в Windows Me и Windows 9x). В этой библиотеке определяются несколько связанных друг с другом объектов–серверов автоматизации (например, в Windows XP и Windows Server 2003 число этих объектов равно двадцати четырем), позволяющих из сценария осуществить авторизованное подключение к службе WMI на локальном или удаленном компьютере и получить доступ к классам и объектам из определенного пространства имен.
При этом связь между репозиторием CIM и объектами библиотеки поддержки сценариев WMI реализована следующим образом: после подключения к службе WMI и получения с помощью этих объектов доступа к экземпляру управляемого ресурса WMI, из сценария становится возможным напрямую использовать все свойства и методы, описанные в соответствующем этому ресурсу классе CIM, как если бы эти свойства и методы были частью библиотеки поддержки сценариев WMI. Это достигается с помощью полиморфного объекта SWbemObject, который может представлять либо экземпляр управляемого ресурса WMI, либо определение класса WMI. Полиморфным этот объект называется из-за того, что набор его свойств зависит от управляемого ресурса (класса CIM), которому он сопоставлен. Например, для класса Win32_Process объект SWbemObject будет среди прочих иметь свойства Handle и ExecutionState, а для класса Win32_Service — свойства ServiceType и StartMode.
В таблице 12.1 кратко описаны основные объекты библиотеки поддержки сценариев WMI, которые мы будем наиболее часто использовать в наших примерах.
| Объект | Описание |
|---|---|
| SWbemLocator | Используется для установления связи с пространством имен WMI на локальном или удаленном компьютере. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта WScript |
| SWbemServices | Позволяет выполнять действия над классами и объектами в пространстве имен WMI (создание, получение доступа, изменение и удаление классов или экземпляров классов). В языках VBScript и JScript создается с помощью функции GetObject, в WSH — с помощью метода GetObject объекта WScript |
| SWbemObjectSet | Коллекция объектов SWbemObject, которая может быть получена путем вызова методов других объектов библиотеки поддержки сценариев WMI (например, методов ExecQuery или InstancesOf объекта SWbemservices ) |
| SWbemObject | Представляет либо экземпляр управляемого ресурса WMI, либо определение класса WMI. В языках VBScript и JScript создается с помощью функции GetObject, в WSH — с помощью метода GetObject объекта Wscript |
| SWbemMethodSet | Коллекция объектов SWbemMethod. Хранится в свойстве Methods_ соответствующего объекта SWbemObject, не может быть создана в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemMethod | Позволяет получить описание метода объекта WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemPropertySet | Коллекция объектов SWbemProperty. Хранится в свойстве Properties_ соответствующего объекта SWbemObject, не может быть создана в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemProperty | Представляет одно свойство управляемого объекта WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemQualifierSet | Коллекция объектов SWbemQualifier. Хранится в свойстве Qualifiers_ соответствующего объекта SWbemObject, SWbemProperty или SWbemMethod. Эта коллекция не может быть создана в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemQualifier | Представляет либо квалификатор класса или экземпляра класса WMI, либо квалификатор свойства или метода объекта WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemObjectPath | Позволяет построить и проверить путь к объекту WMI. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта WScript |
| SWbemNamedValueSet | Коллекция объектов SWbemNamedValue. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта Wscript |
| SWbemNamedValue | Используется для передачи дополнительной информации при некоторых вызовах WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemLastError | Содержит расширенную информацию о произошедшей ошибке WMI. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта Wscript |
| SWbemSecurity | Позволяет читать или записывать информацию об установках безопасности для определенного объекта WMI. Хранится в свойстве Security_ объектов SWbemLocator, SWbemServices, SWbemObjectSet, SWbemObject, SWbemObjectPath, SWbemLastError, SWbemEventSource |
| SWbemPrivilegeSet | Коллекция объектов SWbemPrivilege. Хранится в свойстве Privileges объекта WbemSecurity |
| SWbemPrivilege | Позволяет установить или удалить привилегию, необходимую для доступа к объекту WMI. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemEventSource | Соответствует событию WMI, которое задается с помощью метода ExecNotificationQuery объекта SWbemServices. Этот объект не может быть создан в сценарии напрямую с помощью CreateObject или GetObject |
| SWbemSink | Используется для получения результатов выполнения асинхронных методов. В языке VBScript создается с помощью функции CreateObject, в JScript — с помощью конструкции new ActiveXObject, в WSH — с помощью метода CreateObject объекта Wscript |
Соединение с подсистемой WMI
Первым шагом при работе с WMI из сценария является получение доступа к подсистеме WMI на локальном или удаленном компьютере. Для этого существуют два различных варианта: с использованием объекта SWbemLocator и с помощью так называемого WMI-моникера (WMI moniker) «WinMgmts:».
Соединение с помощью объекта SWbemLocator
Объект SWbemLocator позволяет установить соединение с определенным пространством имен WMI на удаленном компьютере от имени заданной учетной записи (на локальном компьютере соединение с WMI всегда производится от имени текущей учетной записи). Использование этого объекта бывает необходимо, если в сценарии нужно явно задать имя пользователя и пароль для подключения к пространству имен WMI, либо сценарий используется внутри HTML-страницы.
Для создания объекта SWbemLocator в сценарии VBScript нужно вызвать функцию CreateObject() и указать в качестве ее аргумента программный идентификатор WbemScripting.SWbemLocator, например:
Set objSWbemLocator = CreateObject
("WbemScripting.SWbemLocator")
Единственный имеющийся у SWbemLocator метод ConnectServer позволяет подключиться к службе WMI на указанном компьютере и получить ссылку на соответствующий объект SWbemServices. Имя компьютера, с которым следует произвести соединение, указывается в качестве первого параметра этого метода, а имя пространства имен WMI — в качестве второго. Например, чтобы подключиться к пространству имен RootCIMV2 на компьютере POPOV, в сценарии следует выполнить следующие строки:
Set objLocator = CreateObject
("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer
("POPOV", "RootCIMV2")
При этом будет произведена попытка соединения от имени текущей учетной записи. В качестве третьего и четвертого параметров метода ConnectServer можно при необходимости указать имя пользователя и пароль для связи с нужным пространством имен. Например, для подключения к пространству имен RootCIMV2 на компьютере POPOV от имени учетной записи Popov домена Domain1 с паролем MyPassword, в сценарии следует выполнить следующие строки:
Set objLocator = CreateObject
("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer
("POPOV", "RootCIMV2", "Domain1Popov", "MyPassword")
Естественно, можно не указывать явно пароль в тексте сценария, а вводить его с клавиатуры в какую-либо переменную, которую затем подставить в метод ConnectServer. Напомним, что для ввода строки с клавиатуры в консольном режиме выполнения сценариев используются стандартные входной и выходной потоки WScript.StdIn и WScript.StdOut, а в графическом режиме — функция InputBox() языка VBScript. Кроме этого, в Windows XP и Windows Server 2003 имеется объект ScriptPW, позволяющий выполнять ввод текста с клавиатуры в консольном режиме без дублирования вводимых символов на экране. В листинге 12.1 приведен сценарий InputPassw.vbs (запускать этот сценарий нужно обязательно с помощью cscript.exe), в котором запрашивается пароль пользователя и производится соединение со службой WMI на удаленном компьютере с использованием этого пароля, после чего на экран выводится описание роли компьютера в домене (при этом сам введенный пароль на экране не
отображается).
'*******************************************************************
' Имя: InputPassw.vbs
' Язык: VBScript
' Описание: Ввод пароля без отображения на экране для соединения
' с WMI на удаленном компьютере
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim strClass ' Имя класса
Dim strUser ' Имя пользователя
Dim strPassw ' Пароль пользователя
Dim objPassw ' Объект ScriptPW
Dim objLocator ' Объект SWbemLocator
Dim objService ' Объект SWbemServices
Dim colInstances ' Коллекция экземпляров класса WMI
Dim objInstance ' Элемент коллекции
Dim strComputerRole ' Роль компьютера в домене
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "POPOV"
strNamespace = "RootCIMV2"
strClass = "Win32_ComputerSystem"
strUser = "POPOV404_Popov"
'Создаем объект ScriptPW
Set objPassw = CreateObject("ScriptPW.Password")
' Выводим подсказку для ввода пароля
WScript.StdOut.Write "Введите пароль для " & strUser & ": "
'Вводим пароль
strPassw = objPassw.GetPassword()
'Создаем объект SWbemLocator
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
'Соединяемся с пространством имен WMI от имени заданной учетной записи
Set objService = objLocator.ConnectServer(strComputer, strNamespace, strUser, strPassw)
' Создаем коллекцию экземпляров класса Win32_ComputerSystem
Set colInstances = objService.InstancesOf(strClass)
' Перебираем элементы коллекции
For Each objInstance In colInstances
' Определяем описание роли
Select Case objInstance.DomainRole
Case 0
strComputerRole = "Standalone Workstation"
Case 1
strComputerRole = "Member Workstation"
Case 2
strComputerRole = "Standalone Server"
Case 3
strComputerRole = "Member Server"
Case 4
strComputerRole = "Backup Domain Controller"
Case 5
strComputerRole = "Primary Domain Controller"
End Select
' Выводим результат на экран
Wscript.Echo "Роль компьютера " & strComputer & ": " & strComputerRole
Next
'************************* Конец ***********************************
Листинг
12.1.
Ввод пароля без отображения на экране для соединения с WMI на удаленном компьютере
Правильные ответы выделены зелёным цветом.
Все ответы: В курсе рассматриваются стандартные технологии (WSH, WMI, ADSI) и программные продукты (командный интерпретатор Cmd.exe, серверы сценариев CScript и WScript, оболочка Windows PowerShell) фирмы Microsoft, разработанные для автоматизации работы в операционной системе Windows.
В каких версиях операционной системы Windows можно пользоваться командными файлами?
(1) во всех версиях Windows
(2) в Windows NT и выше
(3) в Windows XP и выше
Какими основными компонентами можно представить общую структуру WMI?
(1) управляемые ресурсы, ядро WMI, управляющие программы
(2) провайдеры WMI, менеджер объектов CIM, репозиторий CIM
(3) управляемые ресурсы, библиотека поддержки сценариев WMI, управляющие программы
К какому типу относится класс Win32_Process?
(1) динамический класс
(2) статический класс
(3) абстрактный класс
Каким файлом реализована библиотека поддержки сценариев WMI?
(1) winmgmtr.dll
(2) wbemdisp.dll
(3) wmiprov.dll
Какой класс WMI позволяет перезагрузить удаленный компьютер?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какая команда WMIC позволяет выйти из этой оболочки?
(1) QUIT
(2) EXIT
(3) END
Какие форматы вывода поддерживает WMIC по умолчанию?
(1) текстовые файлы с разделителями (CSV-файлы)
(2) таблицы Microsoft Excel
(3) XML-файлы
Какое из имен не соответствует шаблону наименования командлетов?
(1) Get-Service
(2) Get_Service
(3) GetService
Требуется узнать, какие свойства имеют объекты, возвращаемые командлетом с псевдонимом dir. Какая команда позволяет сделать это?
(1) Get-Member | dir
(2) dir | gm -MemberType Property
(3) dir | Get-Member -MemberType Property
Требуется получить текстовый файл C:cimv2.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен RootCIMV2. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
(1) Get-WmiObject -list | Sort-Object name | Format-Table name > c:cimv2.txt
(2) gwmi -list | sort name | ft name > c:cimv2.txt
(3) gwmi | sort name | ft name | out-file c:cimv2.txt
Какое расширение должны иметь сценарии PowerShell?
В каком каталоге в Windows XP хранится файл cmd.exe?
(1) %SystemRoot%
(2) %SystemRoot%System32
(3) %SystemRoot%System
Какое расширение могут иметь командные файлы?
Какое имя имеет сервер сценариев WSH для консольного режима?
(1) cscript.exe
(2) wscript.exe
(3) cmd.exe
Какой из объектов WSH позволяет получить доступ к стандартным потокам ввода/вывода (StdIn/StdOut)?
(1) WshEnvironment
(2) WshShell
(3) WScript
Какой программный идентификатор (ProgID) имеет объект FileSystemObject?
(1) Scripting.FSO
(2) WScript.FileSystemObject
(3) Scripting.FileSystemObject
С помощью каких методов можно запустить новый процесс в сценарии WSH?
(1) метод Run объекта WshShell
(2) метод Exec объекта WshShell
(3) метод AppActivate объекта WshShell
Какая из приведенных ниже строк связывания может использоваться в службе каталогов Windows Active Directory?
(1) LDAP://ldapsrv1/CN=Ivanov,DC=DEV,DC=MSFT,DC=COM
(2) WinNT://Domain1/Server1,Computer1
(3) NDS://TreeNW/O=SB/CN=Ivanov
Какие из указанных ниже элементов входят в схему WS XML?
(1) <runtime>
(2) <reference>
(3) <subject>
Какие средства позволяют напрямую обращаться к объектам WMI?
(1) оболочка WMIC
(2) сценарии WSH
(3) интерпретатор Cmd.exe
Какие из перечисленных ниже функций должен выполнять менеджер объектов CIMOM?
(1) хранение экземпляров классов информационной модели CIM
(2) переадресация запросов от управляющих приложений к определенным провайдерам WMI
(3) регистрация информации о провайдерах WMI
Можно ли изменять значения свойств объектов WMI?
(1) нет, все свойства объектов WMI доступны только для чтения
(2) да, все свойства объектов WMI можно изменять
(3) можно изменять лишь некоторые свойства объектов WMI (зависит от версии операционной системы)
Какой объект библиотеки поддержки сценариев WMI позволяет подключиться к пространству имен WMI на локальной или удаленной машине?
(1) SWbemLocator
(2) SWbemServices
(3) SWbemObject
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для перезагрузки локального компьютера?
(1) RemoteShutdown
(2) дополнительных привилегий указывать не нужно
(3) Shutdown
Какой глобальный параметр позволяет обращаться из оболочки WMIC к пространству имен WMI на удаленном компьютере?
(1) /NODE
(2) /HOST
(3) /COMP
С помощью какой команды можно сформировать файл C:s.htm с одной HTML-таблицей, содержащей краткие сведения о всех службах, зарегистрированных на локальном компьютере?
(1) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HTABLE
(2) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HFORM
(3) /OUTPUT:C:s.htm SERVICE LIST /FORMAT:HFORM
Какая команда позволит увидеть, какому командлету соответствует псевдоним dir?
(1) Get-Command dir
(2) Get-Alias dir
(3) Get-Definition dir
Какая из команд выведет список файлов из корневого каталога диска C:, размер которых больше 1 килобайта?
(1) dir c: | where {$_.length -gt 1024}
(2) dir c: | where {$_.length>1024}
(3) dir c: | where-object {$_.length -gt 1024}
Требуется получить список программ, запускаемых автоматически при загрузке операционной системы. Какая команда решают эту задачу?
(1) gwmi win32_startupcommand | fl
(2) gwmi win32_product | fl
(3) GetWmiObject Win32Startup | Format-List *
Пусть $a=3. Какая из команд при выполнении выдаст сообщение "Значение переменной a равно 3"?
(1) if ($a -eq 3){write-host 'Значение переменной a равно $a'}
(2) if ($a -eq 3){write-host "Значение переменной a равно $a"}
(3) if ($a==3){write-host "Значение переменной a равно $a"}
Какой командой интерпретатора Cmd.exe можно создать файл Dir_Help.txt с описанием команды DIR?
(1) dir /? | Dir_Help.txt
(2) dir > Dir_Help.txt
(3) dir /? > Dir_Help.txt
(4) dir /? & Dir_Help.txt
Сколько параметров командной строки можно обработать в пакетном файле?
(1) девять
(2) десять
(3) произвольное количество
Какой режим выполнения будет установлен по умолчанию для сценариев WSH после выполнения команды cscript.exe //H:CScript?
(1) консольный
(2) графический
(3) тот режим, который был до выполнения команды
Какой из объектов WSH позволяет получить доступ к переменным среды?
(1) WshEnvironment
(2) WshNetwork
(3) WScript
Пусть D – экземпляр объекта Drive, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.TotalSize/(1024*1024). Чему после этого равно значение переменной n?
(1) общий объем диска D: в килобайтах
(2) общий объем диска D: в мегабайтах
(3) общий объем диска D: в гигабайтах
С помощью какого метода можно завершить работу запущенного дочернего процесса?
(1) метод с данной функциональностью в WSH отсутствует
(2) метод Terminate объекта WshScriptExec
(3) метод Kill объекта WshScriptExec
Какая из приведенных ниже строк ADsPath должна использоваться для связывания с локальным пользователем Ivanov на рабочей станции Comp1 с операционной системой Windows XP?
(1) WinNT://Comp1/Ivanov
(2) WinNT://Comp1/Ivanov, user
(3) WinNT://Comp1, Ivanov, user
В каких случаях в сценарии необходимо использовать элемент <package>?
(1) сценарий содержит код на нескольких языках
(2) сценарий содержит более одного задания
(3) элемент <package> необходимо указывать во всех сценариях
Какие языки можно использовать для написания сценариев WSH?
(1) Microsoft VBScript
(2) Microsoft JScript
(3) Microsoft C#
Какой исполняемый файл обеспечивает функциональность менеджера CIMOM?
(1) winmgmt.exe
(2) wbemtest.exe
(3) wmi.exe
Допустим, что класс WMI имеет квалификатор SupportsCreate со значением True. Что это означает?
(1) класс поддерживает операцию создания экземпляров
(2) класс является динамическим
(3) класс допускает добавление новых свойств
Каким образом из сценария WSH можно подключиться к определенному пространству имен WMI?
(1) с помощью объекта SWbemLocator
(2) с помощью объекта SWbemSevices
(3) с помощью моникера WMI
Какой класс WMI позволяет узнать дату установки операционной системы?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какой глобальный параметр позволяет перенаправить вывод всех команд WMIC во внешний текстовый файл c:wmic_out.txt (без дублирования выводимой информации на экране)?
(1) /APPEND:c:wmic_out.txt
(2) /OUTPUT:c:wmic_out.txt
(3) /RECORD:c:wmic_out.txt
Какая команда позволяет удаленно выключить рабочую станцию \Comp1?
(1) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 1
(2) /NODE:COMP1 OS CALL Win32ShutDown 1
(3) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 0
Каким образом можно вывести краткую справку по командлету Get-Process?
(1) Get-Process /?
(2) Get-Process -?
(3) Get-Process ?
Требуется получить упорядоченный по размеру список файлов из корневого каталога диска C:, размер которых больше 1 килобайта. Вверху списка должен быть самый маленький файл. Какие команды решают эту задачу?
(1) dir c: | where {$_.length -gt 1024} | sort-object length
(2) dir c: | where {$_.length -gt 1024} | sort length
(3) dir c: | where {$_.length -gt 1024} | object length
Требуется получить список всех служб, зарегистрированных на локальном компьютере, запуск которых отключен. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
(1) Get-WmiObject -Query 'select * from Win32_Service where StartMode="Disabled"' | Format-Table Name, DisplayName, State
(2) gwmi -query 'select * from win32_service where StartMode="Disabled"' | ft name, displayname, state
(3) gwmi win32_service -filter 'StartMode="Disabled"' | ft name, displayname, state
Пусть $a=3. Какая из команд при выполнении выдаст ровно одно сообщение "Значение переменной a равно 4"?
(1) while($a -le 3){$a++; Write-Host "Значение переменной a равно $a"}
(2) while($a -eq 3){$a++; Write-Host "Значение переменной a равно $a"}
(3) while($a -lt 5){$a++; Write-Host "Значение переменной a равно $a"}
Пусть текущим каталогом является C:folder1folder2folder3. Каким командами можно переместиться в корневой каталог диска C?
(1) cd
(2) cd c:
(3) cd c:
(4) cd ......
Пусть значением переменной %SystemRoot% является строка "C:Windows" (без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:~0,3% ?
Какой язык поддерживает WSH по умолчанию (без установки дополнительных модулей)?
(1) VBScript
(2) Visual Basic
(3) Python
Какой из объектов WSH позволяет создавать ярлыки для программ и документов?
(1) WshEnvironment
(2) WshShell
(3) WScript
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно создать временный текстовый файл со случайным именем (язык VBScript)?
(1) F=FSO.CreateTextFile(FSO.GetTempName, true)
(2) Set F=FSO.CreateTextFile(FSO.GetTempName, true)
(3) Set F=FSO.CreateTextFile(FSO.GetRandomName, true)
С помощью какого метода можно имитировать нажатия клавиш в активном окне приложения Windows?
(1) метод с данной функциональностью в WSH отсутствует
(2) метод SendKeys объекта WshShell
(3) метод PutKeys объекта WshShell
Каким образом из сценария на языке JScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows NT?
(1) var objNamespace = GetObject("WinNT:");
(2) var objNamespace = new ActiveXObject("WinNT:");
(3) var objNamespace = GetObject("LDAP:");
Какие из приведенных ниже элементов могут содержаться внутри элемента <runtime> в схеме WS XML?
(1) <named>
(2) <unnamed>
(3) <arguments>
Какое средство автоматизации предлагает собственную объектную модель?
(1) Cmd.exe
(2) Windows PowerShell
(3) WSH
Какой символ используется для задания имени локального компьютера в пути к объектам WMI?
(1) *
(2) . (точка)
(3) $
Как можно узнать, доступен ли для выполнения определенный метод объекта WMI?
(1) все методы, объявленные в объектной модели WMI, доступны для выполнения
(2) нужно проверить у данного метода наличие и значение квалификатора Implemented
(3) нужно проверить у данного метода наличие и значение квалификатора Realised
Какой программный идентификатор (ProgID) имеет объект SWbemLocator?
(1) WbemScripting.SWbemLocator
(2) WMIScripting.SWbemLocator
(3) WMIScript.SWbemLocator
Какой запрос на языке WQL позволит получить набор всех служб с ручным режимом запуска?
(1) SELECT * FROM Win32_Service WHERE StartMode ='Manual'
(2) SELECT * FROM Win32_Service WHERE Mode ='Manual'
(3) SELECT * FROM Service WHERE StartMode ='Manual'
Какая команда WMIC позволяет работать с экземплярами классов WMI напрямую, без использования псевдонимов?
(1) CLASS
(2) WMI_PATH
(3) PATH
Пусть требуется узнать букву последнего логического диска на компьютере \Comp1. Какие команды позволят это сделать?
(1) /NODE:COMP1 BOOTCONFIG GET LastDrive
(2) /NODE:COMP1 BOOTCONFIG LIST LastDrive
(3) /NODE:COMP1 BOOTCONFIG SHOW LastDrive
Какая из команд не будет автоматически дополнена до подходящего командлета (Start-Service) после нажатия клавиши <Tab>?
(1) Start-
(2) Start
(3) Start-S
Требуется получить список файлов (без каталогов) корневого каталога диска C: и вывести в виде таблицы имена и размеры данных файлов, а также дату последнего обращения к ним. Какие команды решают эту задачу?
(1) dir c: | where {$_.mode -notmatch "d"} | ft name, length, lastaccesstime
(2) dir c: | where {$_.mode -notmatch "d"} | fl name, length, lastaccesstime
(3) dir c: | where {$_.mode -notmatch "d"} | fc name, length, lastaccesstime
Какая команда позволит увидеть свойства и методы, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
(1) New-Object -ComObject InternetExplorer.Application | Get-Member
(2) New-Object InternetExplorer.Application | Get-Member
(3) Create-Object -ComObject InternetExplorer.Application | Get-Member
Требуется найти и сохранить в переменной $m суммарный размер файлов с расширением mp3, хранящихся в каталоге C:Music и всех его подкаталогах. Какие команды решают эту задачу?
(1) $m = 0; foreach ($f in dir -recurse c:music* -include *.mp3) { $m += $f.length }
(2) $m = 0; foreach ($f in dir -recurse c:music* -exclude *.mp3) { $m += $f.length }
(3) $m = 0; ForEach-Object ($f in dir -recurse c:music* -include *.mp3) { $m += $f.length }
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul && echo 2222 ?
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Какой командой можно приостановить работу пакетного файла?
(1) stop
(2) pause
(3) wait
Какое расширение имеет файл параметров для сценариев WSH?
Каким образом можно из сценария создать экземпляр внешнего объекта-сервера автоматизации?
(1) с помощью метода WScript.CreateObject
(2) с помощью функции CreateObject языкаVBScript
(3) с помощью оператора new языка JScript
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно удалить файл C:1.txt (язык VBScript)?
(1) FSO. EraseFile "C:1.txt"
(2) FSO.DeleteFile "C:1.txt"
(3) FSO.Delete "C:1.txt"
Каким образом в сценарии WSH можно сымитировать нажатие клавиши <Enter> в активном окне приложения Windows?
(1) этого из сценария WSH сделать нельзя
(2) с помощью вызова метода SendKeys объекта WshShell с параметром «~»
(3) с помощью вызова метода SendKeys объекта WshShell с параметром «Enter»
Какой метод используется для записи в базу данных учетных записей информации о новом пользователе?
(1) метод SetInfo объекта User
(2) метод PutInfo объекта User
(3) метод Apply объекта User
Можно ли в сценарии с разметкой XML использовать константы, определенные во внешних COM-объектах, обращаясь к ним по имени?
(1) нельзя, именованные константы необходимо определять в сценарии явно
(2) можно, предварительно установив связь с библиотекой типов нужных объектов с помощью элемента <reference>
(3) можно, предварительно подключив нужный объект с помощью элемента <object>
Можно ли в Windows использовать стандартные Unix-утилиты?
(1) да, после установки пакета Services for Unix
(2) да, Unix-утилиты поддерживаются по умолчанию
(3) нельзя
Каким образом задается путь к объекту WMI, соответствующему процессу calc.exe, запущенному на компьютере \comp1?
(1) \comp1CIMV2:Win32_Process.Name="calc.exe"
(2) \comp1Applications:Win32_Process.Name="calc.exe"
(3) \comp1CIMV2:Win32_ProcessName"calc.exe"
Какая стандартная утилита Windows позволяет работать с объектной моделью WMI?
(1) regedit.exe
(2) wmimgmt.msc
(3) wbemtest.exe
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
(1) Set objService = GetObject("WinMgmts:\.RootCIMV2")
(2) Set objService = GetObject("WinMgmts:RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\.RootCIMV2")
Какой запрос на языке WQL позволит получить набор всех процессов, начинающихся на букву «F»?
(1) SELECT * FROM Win32_Process WHERE Name LIKE 'F*'
(2) SELECT * FROM Win32_Process WHERE Name LIKE 'F%'
(3) SELECT * FROM Win32_Process WHERE Name LIKE 'F_'
Какая команда WMIC используется для выполнения методов классов и объектов WMI?
Допустим, что на локальном компьютере служба сервера (Lanmanserver) отключена. С помощью какой команды WMIC можно изменить режим запуска данной службы на автоматический?
(1) SERVICE WHERE (Name="Lanmanserver") SET StartMode="Auto"
(2) PATH Win32_Service WHERE (Name="Lanmanserver") SET StartMode="Auto"
(3) этого сделать нельзя, свойство StartMode псевдонима SERVICE доступны только для чтения
Требуется вывести в текстовый файл C:RunningServices.txt информацию о всех службах, работающих на компьютере (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
(1) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status > C:RunningServices.txt
(2) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Out-File C:RunningServices.txt
(3) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Write-File C:RunningServices.txt
Какая команда позволит увидеть свойства и методы, имеющиеся у статического класса System.Environment?
(1) System.Environment | Get-Member -Static
(2) [System.Environment] | Get-Member -Static
(3) [System.Environment] | Get-Member
Какая политика выполнения устанавливается в PowerShell по умолчанию?
(1) Restricted
(2) AllSigned
(3) RemoteSigned
Какими командами можно изменить расширения на js для файлов, находящихся в текущем каталоге, имеющих расширение vbs и имя которых состоит только из одного или двух символов?
(1) ren ??.vbs ??.js
(2) ren ??.vbs *.js
(3) ren *.vbs *.js
(4) move ??.vbs *.js
С помощью какого варианта команды if можно проверить наличие определенного файла?
(1) if exist …
(2) if defined …
(3) if errorlevel …
Какое расширение может иметь файл со сценарием на языке VBScript?
Какой программный идентификатор (ProgID) имеет объект WshShell?
(1) WScript.Shell
(2) WScript.WshShell
(3) WScript.WinShell
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно файл C:1.txt переименовать (переместить) в файл D:2.txt (язык VBScript)?
(1) FSO.MoveFile "C:1.txt"; "D:2.txt"
(2) FSO.MoveFile("C:1.txt", "D:2.txt")
(3) Необходимы два оператора:
FSO.CopyFile «C:1.txt», «D:2.txt»FSO.DeleteFile «C:1.txt»
Какой объект является корневым в объектной модели Microsoft Word?
(1) Word
(2) Application
(3) Selection
Пусть objUser – экземпляр объекта User, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык JScript)?
(1) objUser.SetPassword("11111111")
(2) objUser.Password="11111111";
(3) objUser.PutPassword("11111111");
Какой элемент схемы WS XML позволяет подключить к сценарию код из внешнего файла?
(1) элемент <script> с атрибутом src
(2) элемент <script> с атрибутом filename
(3) к сценарию с разметкой XML нельзя подключить внешний файл с другим сценарием
Какие из средств автоматизации поддерживают работу в интерактивном режиме?
(1) WSH
(2) WMIC
(3) Windows PowerShell
Допустим, что используя стандартные средства Windows, определенный пользователь не может перезагрузить локальный компьютер (не имеет соответствующих прав). Сможет ли он перезагрузить компьютер с помощью WMI?
(1) да, если он имеет соответствующие права на уровне пространств имен WMI локальной машины
(2) нет
(3) да, только нужно перезагружать с удаленной машины и иметь соответствующие права на уровне пространств имен WMI
Какая утилита из пакета WMI Tools позволяет создать фильтр событий WMI?
(1) WMI Event Registration Tool
(2) WMI CIM Studio
(3) WMI Event Viewer
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
(1) Set objService = GetObject("WinMgmts:\.RootCIMV2")
(2) Set objService = GetObject("WinMgmts:RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\.RootCIMV2")
С помощью какого метода WMI можно принудительно завершить работу определенного процесса?
(1) Win32_Process.Terminate()
(2) Win32_Process.Kill()
(3) Win32_Process.Delete()
Какая команда WMIC используется для получения значений определенных свойств объектов WMI?
(1) SHOW
(2) GET
(3) SELECT
Какая команда принудительно завершит все процессы, имена которых начинаются на букву «F»?
(1) PROCESS WHERE (Name LIKE "F%") CALL Terminate
(2) PROCESS WHERE (Name LIKE "F%") CALL Kill
(3) PROCESS WHERE (Name="F%") CALL Terminate
Какая из команд выведет список файлов и подкаталогов корневого каталога диска C:?
(1) Get-ChildItem c:
(2) dir c:
(3) ls c:
С помощью какой команды можно вывести на принтер, используемый в системе по умолчанию, список запущенных процессов, упорядоченный по затраченному процессорному времени?
(1) Get-Process | Sort-Object cpu -Descending | Out-Printer
(2) Get-Process | Sort-Object cpu -Descending > Printer
(3) ls | sort cpu –Desc | Out-Printer
Какая команда позволит увидеть значение свойства CurrentDirectory статического класса System.Environment?
(1) [System.Environment]::CurrentDirectory
(2) [System.Environment].CurrentDirectory
(3) [System.Environment]:CurrentDirectory
С помощью какой команды можно получить информацию о названиях доступных политик выполнения?
(1) Get-Help Get-ExecutionPolicy -Full
(2) Get-Help Set-ExecutionPolicy -Full
(3) Get-Help about_signing
Требуется сформировать файл doc_info.txt со списком всех файлов с расширением doc, находящихся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
(1) dir /s /b C:Мои документы*.doc > doc_info.txt
(2) dir /b "C:Мои документы*.doc" > doc_info.txt
(3) dir /s /b "C:Мои документы*.doc" > doc_info.txt
Какой из указанных ниже операторов командного файла выведет на экран список всех папок в корне на диске D:?
(1) for /d %%f in (D:*.*) do echo %f
(2) for /d %%f in (D:*.*) do echo %%f
(3) for /r %%f in (D:*.*) do echo %%f
Какой цикл позволяет напрямую перебирать элементы коллекций в языке VBScript?
(1) For Each … Next
(2) Do … Loop
(3) While … Wend
Каким образом на языке VBScript можно создать объект-коллецию всех аргументов командной строки запущенного сценария?
(1) Set objArgs = WScript.Arguments
(2) Set objArgs = CreateObject("WScript.WshArguments")
(3) Set objArgs = CreateObject("WScript.Arguments")
Пусть в папке C:Folder1 хранится файл 1.txt. К какому результату приведет выполнение в сценарии на языке VBScript команды FSO.DeleteFolder "C:Folder1", если FSO – экземпляр объекта FileSystemObject?
(1) файл 1.txt будет удален, папка C:Folder1 останется
(2) папка C:Folder1 будет удалена вместе со всеми своими файлами
(3) возникнет ошибка, нельзя удалять непустую папку
Какой объект является корневым в объектной модели Microsoft Excel?
(1) Excel
(2) Application
(3) Workbook
Пусть в одном файле с разметкй XML задан сценарии на языках VBScript и JScript. Можно ли из VBScript-кода вызвать функцию, определенную на языке JScript?
(1) да, но только если VBScript- и JScript-код расположены внутри одного задания (элемента <job>)
(2) нет, нельзя
(3) да, даже если VBScript- и JScript-код расположены внутри разных заданий (элементов <job>)
Какие версии операционной системы Windows поддерживают сервер сценариев WSH?
(1) Windows 2000 и выше
(2) все 32-разрядные версии Windows
(3) Windows NT и выше
Из каких основных компонентов состоит ядро WMI?
(1) управляемые ресурсы, библиотека поддержки сценариев WMI, управляющие программы
(2) библиотека поддержки сценариев WMI, репозиторий CIM, управляющие программы
(3) провайдеры WMI, менеджер объектов CIM, репозиторий CIM
К какой группе принадлежит класс Win32_Process?
(1) системный класс
(2) класс общей модели
(3) класс модели расширения
Какой компонент операционной системы отвечает за обращение к объектам WMI из сценариев WSH?
(1) библиотека поддержки сценариев WMI (wbemdisp.dll)
(2) провайдер подсистемы Win32 (wmiprov.dll)
(3) оболочка WMIC (wmic.exe)
Какой класс WMI позволяет выключить удаленный компьютер?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
С помощью какой команды можно завершить сеанс работы в WMIC?
(1) LOGOUT
(2) EXIT
(3) QUIT
Какие форматы вывода поддерживает WMIC по умолчанию?
(1) HTML-файлы
(2) таблицы Microsoft Excel
(3) XML-файлы
Какая команда позволяет увидеть список всех доступных командлетов?
(1) Get_Command
(2) Get-Command
(3) GetCommand
Требуется узнать, какие методы имеют объекты, возвращаемые командлетом с псевдонимом dir. Какая команда позволяет сделать это?
(1) Get-Member -MemberType Method | dir
(2) dir | gm -MemberType Method
(3) dir | Get Member -MemberType Property
Требуется получить текстовый файл C:root_class.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен Root. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
(1) gwmi -namespace root -list | sort name | ft name > c:root_class.txt
(2) gwmi -namespace root | sort name | ft name | out_file c:root_class.txt
(3) Get-WmiObject -Namespace Root -List | Sort-Object name | Format-Table name > c:root_class.txt
Какое действие по умолчанию выполнит операционная система, если в Проводнике Windows дважды щелкнуть мышью на файле с расширением ps1?
(1) запустит сценарий PowerShell
(2) ничего не произойдет
(3) откроет сценарий PowerShell для редактирования в Блокноте Windows
Как назывался файл командного интерпретатора в Windows 98?
(1) command.com
(2) cmd.exe
(3) win.com
Можно ли в командных файлах пользоваться внутренними командами интерпретатора Cmd.exe и каким образом?
(1) да, нужно просто указать требуемую команду
(2) да, но для вызова внутренней команды нужно запускать новую копию командного интерпретатора
(3) нет, нельзя
Какое имя имеет сервер сценариев WSH для графического режима?
(1) cscript.exe
(2) wscript.exe
(3) cmd.exe
Каким образом в сценарии создается экземпляр объекта WScript?
(1) создается автоматически
(2) с помощью функции CreateObject языка VBScript
(3) с помощью оператора new языка JScript
Каким образом в сценарии на языке VBScript можно создать экземпляр объекта FileSystemObject?
(1) Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
(2) Set FSO = CreateObject("Scripting.FileSystemObject")
(3) Set FSO = WScript.CreateObject("WScript.FileSystemObject")
С помощью какого метода можно запустить новый независимый процесс в сценарии WSH?
(1) метод Run объекта WshShell
(2) метод Exec объекта WshShell
(3) метод AppActivate объекта WshShell
Какой провайдер ADSI используется для доступа к службе каталогов Windows Active Directory?
(1) LDAP
(2) WinNT
(3) NDS
Какой из указанных ниже элементов входит в схему WS XML?
(1) <script>
(2) <header>
(3) <data>
Какие средства позволяют напрямую обращаться к объектам .NET?
(1) оболочка WMIC
(2) сценарии WSH
(3) оболочка Windows PowerShell
Какие из перечисленных ниже функций должен выполнять менеджер объектов CIMOM?
(1) обработка событий WMI
(2) доступ к удаленной машине с инфраструктурой WMI
(3) обеспечение безопасности при работе с WMI
Как можно узнать, доступно ли определенное свойство объекта WMI для изменения с помощью метода Put_()?
(1) все свойства объектов WMI доступны только для чтения, изменять их нельзя
(2) нужно проверить у данного свойства наличие и значение квалификатора Write
(3) нужно проверить у данного свойства наличие и значение квалификатора Edit
Какой объект библиотеки поддержки сценариев WMI позволяет удалять экземпляры классов в определенном пространстве имен WMI?
(1) SWbemLocator
(2) SWbemServices
(3) SWbemObject
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для принудительного завершения сеанса пользователя на удаленной машине?
(1) RemoteShutdown
(2) дополнительных привилегий указывать не нужно
(3) Shutdown
Допустим, что нам необходимо подключиться к подсистеме WMI на удаленной рабочей станции \Comp1. Какой глобальный параметр WMIC следует для этого использовать?
(1) /NODE:Comp1
(2) /HOST:Comp1
(3) /COMP:Comp1
С помощью какой команды можно сформировать файл C:s.htm с несколькими HTML-таблицами, содержащими краткие сведения о всех службах, зарегистрированных на локальном компьютере (одна таблица для каждой службы)?
(1) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HTABLE
(2) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HFORM
(3) /OUTPUT:C:s.htm SERVICE LIST /FORMAT:HFORM
Какая команда позволит увидеть, какому командлету соответствует псевдоним cls?
(1) Get-Command cls
(2) Get-Alias cls
(3) Get-Definition cls
Какая из команд выведет список всех подкаталогов корневого каталога диска C:?
(1) dir c: | where-object {$_.mode -match "d"}
(2) dir c: | where {$_.mode -match "d"}
(3) ls c: | where-object {$_.mode -match "d"}
Какая команда позволяет увидеть дату установки операционной системы на локальном компьютере?
(1) (gwmi win32_operatingsystem).installdate
(2) {gwmi win32_operatingsystem}.installdate
(3) $os=gwmi win32_operatingsystem; $os.installdate
Пусть $a=3. Какая из команд при выполнении выдаст сообщение "Значение переменной a равно 3"?
(1) if ($a -gt 2){write-host "Значение переменной a равно $a"}
(2) if ($a>2){write-host "Значение переменной a равно $a"}
(3) if ($a -gt 2){write-host 'Значение переменной a равно $a'}
Какой командой интерпретатора Cmd.exe можно создать файл xcopy_help.txt с описанием всех параметров команды XCOPY?
(1) xcopy -help > xcopy_help.txt
(2) xcopy /? > xcopy_help.txt
(3) xcopy /? & xcopy_help.txt
(4) xcopy /? | xcopy_help.txt
Какой смысл в командном файле имеет параметр %0 ?
(1) имя запускаемого файла
(2) первый параметр командной строки
(3) последний параметр командной строки
С помощью какой команды можно в консольном режиме подавить вывод на экран из сценариев сообщений об ошибках?
(1) cscript.exe //I
(2) cscript.exe //B
(3) cscript.exe //S
Какой из объектов WSH позволяет получить доступ к специальным папкам Windows?
(1) WshEnvironment
(2) WshSpecialFolders
(3) WScript
Пусть D – экземпляр объекта Drive, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.FreeSpace/(1024*1024). Чему после этого равно значение переменной n?
(1) объем свободного места на диске D: в килобайтах
(2) объем свободного места на диске D: в мегабайтах
(3) объем свободного места на диске D: в гигабайтах
Пусть objCalc – экземпляр объекта WshScriptExec, соответствующий запущенному дочернему процессу calc.exe (Калькулятор Windows). С помощью какой команды на языке VBScript можно завершить работу данного экземпляра Калькулятора?
(1) objCalc.Terminate
(2) objCalc.Quit
(3) objCalc.Kill
Какая из приведенных ниже строк ADsPath должна использоваться для связывания с локальной группой Group1 на рабочей станции Comp1 с операционной системой Windows XP?
(1) WinNT://Comp1/Group1
(2) WinNT://Comp1/Group1, group
(3) WinNT://Comp1, Group1, group
В каких случаях в сценарии может отсутствовать элемент <package>?
(1) сценарий содержит единственное задание
(2) в сценарии описаны несколько заданий, но все они написаны на одном языке
(3) элемент <package> необходимо указывать во всех сценариях
Можно ли написать сценарий WSH на языке Perl?
(1) нет
(2) да, Perl поддерживается по умолчанию
(3) да, но требуется установка специального модуля поддержки Perl
Файлами какого типа представлены провайдеры WMI?
(1) исполняемые файлы (exe)
(2) элементы управления (ocx)
(3) динамические библиотеки (dll)
Допустим, что класс WMI имеет квалификатор SupportsDelete со значением True. Что это означает?
(1) класс поддерживает операцию удаления экземпляров
(2) класс является динамическим
(3) класс допускает удаление существующих свойств
Предположим, что вы зарегистрированы в системе под учетной записью User1 и вам необходимо из сценария WSH подключиться к пространству имен WMI на удаленной машине от имени учетной записи SuperAdmin. Какой вариант подключения следует выбрать?
(1) с помощью метода ConnectServer объекта SWbemLocator
(2) с помощью моникера WMI
Какой класс WMI позволяет узнать дату и время последней загрузки операционной системы?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какая команда позволяет удаленно перезагрузить рабочую станцию \Comp1?
(1) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 2
(2) /NODE:COMP1 OS CALL Win32ShutDown 2
(3) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 0
Каким образом можно вывести детальную справочную информацию по командлету Get-Process?
(1) help Get-Process -full
(2) Get-Help Get-Process -full
(3) Get-Help Get-Process
Требуется получить упорядоченный по размеру список файлов из корневого каталога диска C:, размер которых больше 1 килобайта. Вверху списка должен быть самый большой файл. Какие команды решают эту задачу?
(1) dir c: | where {$_.length -gt 1024} | sort-object length -desc
(2) dir c: | where {$_.length -gt 1024} | sort length
(3) dir c: | where {$_.length>1024} | sort-object length -desc
Требуется получить список всех служб, зарегистрированных на локальном компьютере, которые запускаются в автоматическом режиме. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
(1) Get-WmiObject -Query 'select * from Win32_Service where StartMode="Auto"' | Format-Table Name, DisplayName, State
(2) gwmi -query 'select * from win32_service where StartMode="Auto"' | ft name, displayname, state
(3) gwmi win32_service -filter 'StartMode="Auto"' | ft name, displayname, state
Пусть $a=3. Какая из команд при выполнении выдаст ровно одно сообщение "Значение переменной a равно 2"?
(1) while($a -ge 3){$a--; Write-Host "Значение переменной a равно $a"}
(2) while($a -eq 3){$a--; Write-Host "Значение переменной a равно $a"}
(3) while($a -ge 2){$a--; Write-Host "Значение переменной a равно $a"}
Пусть текущим каталогом является C:folder1folder2folder3, а в каталоге folder2 имеется еще один подкаталог folder4. Какими командами можно переместиться в каталог folder4?
(1) cd c:folder1folder2folder4
(2) cd ..folder4
(3) cd .folder4
(4) cd c:folder1folder2folder4
Пусть значением переменной %SystemRoot% является строка "C:Windows" (без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:~-3% ?
Какие языки поддерживает WSH по умолчанию (без установки дополнительных модулей)?
(1) C#
(2) JScript
(3) Java
Какой из объектов WSH позволяет протоколировать действия в журнале событий Windows?
(1) WshShell
(2) WshEnvironment
(3) WScript
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно создать текстовый файл с именем «Мой файл.txt» (язык VBScript)?
(1) Set F=FSO.CreateTextFile("Мой файл.txt", true)
(2) F=FSO.CreateTextFile("Мой файл.txt", true)
(3) Set F=FSO.CreateFile("Мой файл.txt", true)
С помощью какого метода можно имитировать нажатия клавиш в текущем сеансе командной строки?
(1) имитировать нажатия клавиш можно только для приложений Windows
(2) метод SendKeys объекта WshShell
(3) метод PutKeys объекта WshShell
Каким образом из сценария на языке VBScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows NT?
(1) Set objNamespace = GetObject("WinNT:")
(2) Set objNamespace = CreateObject("WinNT:")
(3) Set objNamespace = GetObject("LDAP:")
Какие теги могут использоваться для документирования сценария с разметкой XML?
(1) <description>
(2) <info>
(3) <example>
Можно ли написать сценарий WSH на языке Python?
(1) нет
(2) да, Python поддерживается по умолчанию
(3) да, но только после установки модуля поддержки Python
Какой уровень вложенности может иметь пространство имен CIM?
(1) один
(2) два
(3) произвольный
Допустим, что у определенного метода WMI отсутствует квалификатор Implemented. Что это означает?
(1) данный метод пока не реализован в провайдере
(2) данный метод нельзя вызывать в экземплярах класса
(3) данный метод можно выполнять только на локальной машине
Каким образом из сценария на языке VBScript создать экземпляр объекта SWbemLocator?
(1) Set objLocator = CreateObject("WbemScripting.SWbemLocator")
(2) Set objLocator = CreateObject("WMIScripting.SWbemLocator")
(3) Set objLocator = CreateObject("WMIScript.SWbemLocator")
Пусть в сценарии на языке VBScript присутствует строка Set objWMIService = GetObject("WinMgmts:RootCIMV2). Каким образом в этом сценарии получить коллекцию служб, запущенных на локальном компьютере и имеющих ручной режим запуска?
(1)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(2)
colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(3)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Service WHERE StartMode = ‘Manual'» )
Какая команда WMIC позволяет создавать новые экземпляры классов WMI напрямую, без использования псевдонимов?
(1) CLASS
(2) WMI_PATH
(3) PATH
Пусть требуется узнать дату установки операционной системы на компьютере \Comp1. Какая команда позволят это сделать?
(1) /NODE:COMP1 OS LIST InstallDate
(2) /NODE:COMP1 OS GET InstallDate
(3) /NODE:COMP1 OS SHOW InstallDate
Какое расширение должны иметь файлы, содержащие сценарии PowerShell?
Требуется вывести в виде списка всю доступную информацию о подкаталогах корневого каталога диска C:. Какие команды решают эту задачу?
(1) dir c: | where {$_.mode -match "d"} | fl *
(2) dir c: | where {$_.mode -match "d"} | ft *
(3) dir c: | where {$_.mode -match "d"} | Format-List *
Какая команда позволит увидеть свойства, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
(1) New-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Property
(2) New-Object InternetExplorer.Application | Get-Member -MemberType Property
(3) Create-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Property
Требуется найти и сохранить в переменной $m суммарный размер файлов с расширением doc, хранящихся в каталоге C:Docs и всех его подкаталогах. Какие команды решают эту задачу?
(1) $m = 0; foreach ($f in dir -recurse c:docs* -include *.doc) { $m += $f.length }
(2) $m = 0; for ($f in dir -recurse c:docs* -include *.doc) { $m += $f.length }
(3) $m = 0; ForEach-Object ($f in dir -recurse c:docs* -include *.doc) { $m += $f.length }
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul || echo 2222 ?
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
Какой символ позволяет отключить дублирование отдельной строки в командном файле?
Имеется сценарий script.vbs. Какое имя будет иметь файл с параметрами WSH для этого сценария?
(1) script.ws
(2) script.wsh
(3) script.ini
Какой из методов объекта WScript позволяет принудительно завершить работу сценария?
(1) Quit
(2) Exit
(3) End
Какой метод объекта FileSystemObject позволяет удалять файлы?
(1) DeleteFile
(2) EraseFile
(3) Delete
Каким образом в сценарии WSH можно сымитировать нажатие клавиши <Enter> в текущем сеансе командной строки?
(1) с помощью вызова метода SendKeys объекта WshShell с параметром "{Enter}"
(2) с помощью вызова метода SendKeys объекта WshShell с параметром «+»
(3) с помощью вызова метода SendKeys объекта WshShell с параметром "/Enter"/
Какой метод используется для записи в базу данных учетных записей информации о новой группе?
(1) метод PutInfo объекта Group
(2) метод SetInfo объекта Group
(3) метод Apply объекта Group
Какой тег должен присутствовать в сценарии с разметкой XML, чтобы из этого сценария можно было пользоваться константами объекта FileSystemObject без их предварительного объявления в сценарии?
(1) <reference object="Scripting.FileSystemObject"/>
(2) <object id="fso" progid="Scripting.FileSystemObject"/>
(3) из сценария с разметкой XML нельзя пользоваться константами внешних объектов
Какие средства позволяют управлять приложениями-серверами автоматизации?
(1) оболочка Windows PowerShell
(2) сценарии WSH
(3) оболочка Cmd.exe
Каким образом задается путь к объекту WMI, соответствующему службе Alerter, работающей на компьютере \comp1?
(1) \comp1WMI:Win32_ Service.Name="Alerter"
(2) \comp1CIMV2:Win32_Service.Name="Alerter"
(3) \comp1CIMV2:Win32_Service"Alerter"
С помощью какой стандартной утилиты можно запустить процесс на удаленной машине, используя методы WMI?
(1) regedit.exe
(2) wmimgmt.msc
(3) wbemtest.exe
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1?
(1) Set objService = GetObject("WinMgmts:\Comp1RootCIMV2")
(2) Set objService = CreateObject("WinMgmts:\Comp1RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\Comp1RootCIMV2")
Пусть в сценарии на языке VBScript присутствует строка Set objWMIService = GetObject("WinMgmts:RootCIMV2). Каким образом в этом сценарии получить коллекцию процессов, запущенных на локальном компьютере и начинающихся на букву «F»?
(1) Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'F*'")
(2) Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'F%'")
(3) Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name LIKE 'F_'")
С помощью какой команды можно создать новый экземпляр класса Win32_Process (запустить новый процесс) с именем Notepad.exe?
(1) PROCESS DO Notepad.exe
(2) PROCESS RUN Notepad.exe
(3) PROCESS CALL Create Notepad.exe
Допустим, что на локальном компьютере служба сервера (Lanmanserver) стартует автоматически при загрузке операционной системы. С помощью какой команды WMIC можно отключить данную службу?
(1) SERVICE WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(2) PATH Win32_Service WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(3) этого сделать нельзя, свойство StartMode псевдонима SERVICE доступны только для чтения
Какой псевдоним используется для командлета Get-ChildItem в целях совместимости имени с ОС Unix?
Требуется вывести в текстовый файл C:StoppedServices.txt информацию о всех остановленных службах (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
(1) Get-Service | where {$_.Status -like "Stop*"} | ft name, displayname, status > C:StoppedServices.txt
(2) Get-Service | where {$_.Status -like " Stop*"} | ft name, displayname, status < Out-File C:StoppedServices.txt
(3) Get-Service | where {$_.Status -like " Stop*"} | ft name, displayname, status | Write-File C:StoppedServices.txt
Какая команда позволит увидеть свойства, имеющиеся у статического класса System.Environment?
(1) System.Environment | Get-Member -Static -MemberType Property
(2) [System.Environment] | Get-Member –Static -MemberType Property
(3) [System.Environment] | Get-Member -MemberType Property
Какой командлет позволяет узнать текущую политику выполнения?
(1) Get-ExecutionPolicy
(2) Go-ExecutionPolicy
(3) Set-ExecutionPolicy
Пусть в текущем каталоге на диске C: хранятся файлы с расширением vbs. Какими командами можно переместить эти файлы в каталог E:folder1 (с удалением первоначальных файлов)?
(1) ren *.vbs e:folder1
(2) move *.vbs e:folder1
(3) сopy *.vbs e:folder1
(4) copy *.vbs e:folder1 & del *.vbs
С помощью какого варианта команды if можно проверить наличие определенной переменной среды?
(1) if exists …
(2) if defined …
(3) if errorlevel …
Какое расширение может иметь файл со сценарием на языке JScript?
Какой программный идентификатор (ProgID) имеет объект WshNetwork?
(1) WScript.WshNetwork
(2) WScript.Network
(3) WScript.WinNetwork
С помощью какого метода объекта FileSystemObject можно файл C:1.txt переименовать (переместить) в файл D:2.txt?
(1) MoveFile
(2) Move
(3) такого метода нет (нельзя одной командой переместить файл на другой раздел)
Какой программный идентификатор (ProgID) имеет корневой (главный) объект в объектной модели Microsoft Word?
(1) Word.Application
(2) Word.Server
(3) Word.Selection
Какой метод или свойство используются для изменения пароля пользователя?
(1) метод PutPassword объекта User
(2) метод SetPassword объекта User
(3) свойство Password объекта User
Пусть файл со сценарием на языке JScript имеет имя lib.js. Каким образом подключить этот файл к сценарию с разметкой XML?
(1) <script language="JScript" filename="lib.js"/>
(2) <script language="JScript" data-src="lib.js"/>
(3) к сценарию с разметкой XML нельзя подключить внешний файл с другим сценарием
Какие из средств автоматизации являются оболочками командной строки?
(1) Cmd.exe
(2) WSH
(3) Windows PowerShell
Где хранятся записи контроля доступа к пространствам имен WMI?
(1) в репозитории WMI
(2) в системном реестре Windows
(3) в конфигурационном файле
Какую утилиту из пакета WMI Tools можно использовать в качестве постоянного потребителя событий WMI?
(1) WMI Event Registration Tool
(2) WMI CIM Studio
(3) WMI Event Viewer
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1?
(1) Set objService = GetObject("WinMgmts:\Comp1RootCIMV2")
(2) Set objService = CreateObject("WinMgmts:\Comp1RootCIMV2")
(3) Set objService = GetObject("WINMGMTS:\Comp1RootCIMV2")
Пусть коллекция colProcesses содержит экземпляры класса Win32_Process, отобранные по некоторому WQL-запросу. Каким образом принудительно завершить работу всех процессов, соответствующих этим экземплярам (язык VBScript)?
(1)
For Each objProcess in colProcesses
objProcess.Terminate()
Next
(2)
For Each objProcess in colProcesses
objProcess.Kill()
Next
(3)
For Each objProcess in colProcesses
objProcess.Delete()
Next
С помощью какой команды можно увидеть имена всех процессов, запущенных в системе, и пути к исполняемым файлам, соответствующим этим процессам?
(1) PROCESS SHOW Name, ExecutablePath
(2) PROCESS GET Name, ExecutablePath
(3) PROCESS SELECT Name, ExecutablePath
Каким образом можно с помощью WMIC принудительно завершить все запущенные экземпляры браузера Internet Explorer на локальной машине?
(1) PROCESS WHERE Name="iexplore.exe" CALL Kill
(2) PROCESS WHERE Name="iexplore.exe" CALL Terminate
(3) PROCESS WHERE Name="iexplore.exe" CALL Stop
Какая из команд очистит экран консоли?
(1) Clear-Host
(2) clear
(3) cls
С помощью какой команды можно вывести на принтер с именем «HP2200» список запущенных процессов, упорядоченный по затраченному процессорному времени?
(1) Get-Process | Sort-Object cpu -Descending | Out-Printer -Name "HP2200"
(2) Get-Process | Sort-Object cpu -Descending > Printer "HP2200"
(3) ls | sort cpu –Desc-Process | Out-Printer "HP2200"
Какая команда позволит увидеть значение свойства CommandLine статического класса System.Environment?
(1) [System.Environment]::CommandLine
(2) [System.Environment].CommandLine
(3) [System.Environment]:CommandLine
Какую команду нужно выполнить, чтобы разрешить запуск локальных сценариев без цифровой подписи?
(1) Set-ExecutionPolicy RemoteSigned
(2) Set-ExecutionPolicy AllSigned
(3) Set-ExecutionPolicy Restricted
(4) Set-ExecutionPolicy Unrestricted
Требуется сформировать файл hidden _info.txt со списком всех скрытых файлов, находящихся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
(1) dir /s /a:h "C:Мои документы*.*" > hidden_info.txt
(2) dir /a:h "C:Мои документы*.*" > hidden_info.txt
(3) dir /s /a:h C:Мои документы*.* > hidden_info.txt
Какой из указанных ниже операторов командного файла выведет на экран имена всех переменных среды?
(1) for /f "delims==" %%i in ('set') do echo %%i
(2) for /f "delims==" %%i in ("set") do echo %%i
(3) for /f "delims==" %%i in (set) do echo %%i
Какой объект необходимо использовать в языке JScript для перебора элементов коллекций?
(1) Array
(2) Enumerator
(3) Dictionary
Пусть объект WshShell в сценарии на языке VBScript создан следующим образом: Set WshShell=WScript.CreateObject("WScript.Shell"). Каким образом создать объект-коллекцию WshFldrs, содержащую пути ко всем специальным папкам Windows?
(1) WshFldrs = WshShell.SpecialFolders
(2) Set WshFldrs = WshShell.SpecialFolders
(3) Set WshFldrs = WScript.CreateObject("WshShell.SpecialFolders")
С помощью каких методов можно удалить непустую папку?
(1) метод DeleteFolder объекта FileSystemObject
(2) метод Delete объекта Folder
(3) нельзя удалять непустую папку
Каким образом из сценария на языке VBScript установить связь с сервером автоматизации Microsoft Excel?
(1) Set XL=WScript.CreateObject("Excel.Application")
(2) Set XL=WScript.CreateObject("Excel.Server")
(3) Set XL=WScript.CreateObject("Excel.Workbook")
Какой метод или свойство позволяют получить коллецию всех пользователей определенной группы?
(1) метод GetMembers соответствующего объекта Group
(2) метод Members соответствующего объекта Group
(3) свойство Members соответствующего объекта Group
В языке VBScript поддерживается функция InputBox, выводящее диалоговое графическое окно. Можно ли эту функцию вызывать напрямую в JScript-коде?
(1) нет, нельзя
(2) можно, если JScript-код поместить в сценарий с разметкой XML
(3) можно, если перед именем функции указать префикс VBScript
Какие версии операционной системы Windows поддерживают оболочку PowerShell?
(1) Windows XP SP2 и выше
(2) все 32-разрядные версии Windows
(3) Windows 2000 и выше
Какие части составляют архитектуру WMI?
(1) управляемые ресурсы, библиотека поддержки сценариев WMI, управляющие программы
(2) управляемые ресурсы, ядро WMI, управляющие программы
(3) провайдеры WMI, менеджер объектов CIM, репозиторий CIM
Какая библиотека отвечает за поддержку объектов-серверов автоматизации, позволяющих из сценария WSH работать с классами и объектами пространства имен WMI?
(1) winmgmtr.dll
(2) wbemdisp.dll
(3) wmiprov.dll
Какой класс WMI позволяет принудительно завершить сеанс работы пользователя?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какая команда позволяет завершить сеанс работы в WMIC?
(1) LOGOUT
(2) LOGOFF
(3) QUIT
Какие форматы вывода поддерживает WMIC по умолчанию?
(1) HTML-файлы
(2) текстовые файлы с разделителями (CSV-файлы)
(3) XML-файлы
Какая команда позволяет увидеть список всех командлетов, в названии которых содержится глагол Set?
(1) GetCommand Set*
(2) Get_Command Set*
(3) Get-Command Set*
Требуется узнать, какие свойства и методы имеют объекты, возвращаемые командлетом с псевдонимом dir. Какая команда позволяет сделать это?
(1) Get-Member | dir
(2) dir | gm
(3) dir | Get-Member
Требуется получить текстовый файл C:default.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен RootDefault. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
(1) Get-WmiObject -namespace rootdefault -list | Sort-Object name | Format-Table name > c:default.txt
(2) gwmi -namespace rootdefault -list | sort name | ft name > c:default.txt
(3) gwmi -namespace rootdefault | sort name | ft name | out-file c:default.txt
Предположим, что мы работаем в оболочке PowerShell интерактивно и в текущем каталоге имеется сценарий script.ps1. Какая команда запустит этот сценарий на выполнение?
(1) script.ps1
(2) .script.ps1
(3) .script
С помощью каких символов можно перенаправить выходной поток команды во внешний файл с сохранением прежнего содержимого этого файла?
Пусть командный файл состоит из десяти строк, причем в команде из восьмой строки допущена синтаксическая ошибка. Каким образом будет выполнен этот файл.
(1) не выполнится ни одна команда из файла
(2) выполнится семь первых команд, после чего выполнение файла прервется
(3) выполнятся все команды, кроме восьмой
Какие из указанных программ являются серверами сценариев WSH?
(1) cscript.exe
(2) wscript.exe
(3) cmd.exe
Какой метод позволяет считать строку из стандартного входного потока?
(1) WScript.StdIn.ReadLine
(2) WScript.StdIn.InputLine
(3) WScript.StdIn.ReadStr
Каким образом в сценарии на языке JScript можно создать экземпляр объекта FileSystemObject?
(1) var FSO = WScript.CreateObject("Scripting.FileSystemObject");
(2) var FSO = new ActiveXObject("Scripting.FileSystemObject");
(3) var FSO = WScript.CreateObject("WScript.FileSystemObject");
С помощью какого метода можно запустить новый дочерний процесс в сценарии WSH?
(1) метод goRun объекта WshShell
(2) метод Exec объекта WshShell
(3) метод newAppActivate объекта WshShell
Какой провайдер ADSI используется для доступа к базе данных локальных учетных записей на рабочей станции Windows?
(1) LDAP
(2) WinNT
(3) NDS
Какие из указанных ниже элементов входят в схему WS XML?
(1) <reference>
(2) <description>
(3) <subject>
Какие средства позволяют обращаться к объектам WMI непосредственно из командной строки?
(1) оболочка WMIC
(2) оболочка Windows PowerShell
(3) интерпретатор Cmd.exe
За выполнение каких задач отвечает репозиторий CIM?
(1) обработка событий WMI
(2) хранение экземпляров классов информационной модели CIM
(3) регистрация информации о провайдерах WMI
Методы какого объекта библиотеки поддержки сценариев WMI позволяют подключиться к пространству имен WMI?
(1) SWbemObject
(2) SWbemServices
(3) SWbemLocator
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для перезагрузки удаленного компьютера?
(1) RemoteShutdown
(2) дополнительных привилегий указывать не нужно
(3) Shutdown
Допустим, что нам необходимо выполнять команды WMIC на нескольких компьютерах, список которых хранится в файле C:list_comp.txt. Какой глобальный параметр WMIC следует для этого использовать?
(1) /NODE:@C:list_comp.txt
(2) /HOST:@C:list_comp.txt
(3) /COMP:@C:list_comp.txt
С помощью какой команды можно сформировать файл C:s.htm с несколькими HTML-таблицами, содержащими полные сведения (все свойства) о всех службах, зарегистрированных на локальном компьютере (одна таблица для каждой службы)?
(1) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HTABLE
(2) /OUTPUT:C:s.htm SERVICE LIST BRIEF /FORMAT:HFORM
(3) /OUTPUT:C:s.htm SERVICE LIST /FORMAT:HFORM
Какая команда позволит увидеть, какому командлету соответствует псевдоним copy?
(1) Get-Command copy
(2) Get-Alias copy
(3) Show-Alias copy
Какая из команд выведет список всех подкаталогов корневого каталога диска C:, начинающихся на букву «W»?
(1) dir c: | where {($_.mode -match "d") -and ($_.Name -match "w*")}
(2) dir c: | where {($_.mode -match "d") and ($_.Name -like "w*")}
(3) dir c: | where {($_.mode -match "d") -and ($_.Name -like "w*")}
Какая команда позволяет увидеть дату установки операционной системы на компьютере c IP-адресом 10.169.1.204?
(1) (gwmi -comp 10.169.1.204 win32_operatingsystem).installdate
(2) {gwmi os-computername 10.169.1.204 win32_operatingsystem}.installdate
(3) $os=gwmi -computername 10.169.1.204 win32_operatingsystem; $os.installdate
Пусть $a=3. Какая из команд при выполнении выдаст сообщение "Значение переменной a равно 3"?
(1) if ($a -le 3){write-host "Значение переменной a равно $a"}
(2) if ($a<=3){write-host "Значение переменной a равно $a"}
(3) if ($a -le 3){write-host 'Значение переменной a равно $a'}
Какой командой интерпретатора Cmd.exe можно создать файл Dir_Help.txt с описанием команды DIR?
(1) dir -? | Dir_Help.txt
(2) dir -? > Dir_Help.txt
(3) dir /? > Dir_Help.txt
(4) dir /? & Dir_Help.txt
С помощью какого оператора можно выделить имя файла из первого параметра командной строки?
(1) %~Pi
(2) %~Ni
(3) %~Di
Какая команда запускает сценарий 1.vbs в текстовом режиме без вывода информации о версии и разработчике WSH?
(1) cscript.exe //nologo 1.vbs
(2) wscript.exe //nologo 1.vbs
(3) cscript.exe //logo 1.vbs
Какой из объектов WSH позволяет запускать новые процессы?
(1) WScript
(2) WshShell
(3) WshEnvironment
Пусть D – экземпляр объекта Drive, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.TotalSize/(1024*1024*1024). Чему после этого равно значение переменной n?
(1) общий объем диска D: в килобайтах
(2) общий объем диска D: в мегабайтах
(3) общий объем диска D: в гигабайтах
Пусть objCalc – экземпляр объекта WshScriptExec, соответствующий запущенному дочернему процессу. Каким образом внутри сценария можно узнать, продолжает ли работать данный процесс?
(1) если objCalc.Status=1, то процесс продолжает работать
(2) если objCalc.Status=0, то процесс продолжает работать
(3) если objCalc.Status=-1, то процесс продолжает работать
Каким образом из сценария на языке VBScript провести связывание с локальной группой Group1 на рабочей станции Comp1 с операционной системой Windows XP?
(1) Set objGroup = GetObject("WinNT://Comp1/Group1")
(2) Set objGroup = GetObject("WinNT://Comp1/Group1, group")
(3) Set objGroup = GetObject("WinNT://Comp1, Group1, group")
Может ли в сценарии с разметкой XML отсутствовать элемент <package>?
(1) нет, элемент <package> необходимо указывать во всех сценариях
(2) да, если весь код в сценарии написан на одном и том же языке
(3) да, если сценарий содержит единственное задание
Какие языки можно использовать для написания сценариев PowerShell?
(1) Microsoft VBScript
(2) собственный язык Windows PowerShell
(3) Microsoft C#
Какими файлами поддерживается репозиторий CIM в Windows XP?
(1) index.btr
(2) objects.data
(3) winmgmt.exe
Допустим, что класс WMI имеет квалификатор SupportsUpdate со значением True. Что это означает?
(1) класс поддерживает операцию изменения (обновления) экземпляров
(2) класс является динамическим
(3) класс допускает изменение имен существующих свойств
Каким образом на локальной машине можно подключиться к пространству имен WMI от имени учетной записи, отличной от текущей учетной записи?
(1) с помощью метода ConnectServer объекта SWbemLocator
(2) с помощью моникера WMI
(3) на локальной машине подключение к WMI всегда производится от имени текущей учетной записи
Какой класс WMI позволяет узнать серийный номер операционной системы?
(1) Win32_OperatingSystem
(2) Win32_SystemSetting
(3) Win32_ComputerSystem
Какой глобальный параметр позволяет сохранить во внешнем XML-файле c:wmic_out.xml историю команд WMIC?
(1) /APPEND:c:wmic_out.xml
(2) /OUTPUT:c:wmic_out.xml
(3) /RECORD:c:wmic_out.xml
Какая команда позволяет принудительно завершить сеанс работы пользователя на рабочей станции \Comp1?
(1) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 0
(2) /NODE:COMP1 OS CALL Win32ShutDown 0
(3) /NODE:COMP1 OS WHERE(CSNAME="COMP1") CALL Win32ShutDown 1
Какая команда позволяет увидеть примеры использования командлета Get-Process?
(1) Get-Process -?
(2) Get-Help Get-Process -full
(3) Get-Help Get-Process -Detailed
Какая из команд выведет список всех подкаталогов и файлов из корневого каталога диска C:, упорядоченный по времени последнего обращения к ним?
(1) dir c: | sort LastAccessTime
(2) dir c: | sort-object LastAccessTime
(3) dir c: | sort LastWriteTime
Требуется получить список всех служб, зарегистрированных на локальном компьютере, которые запускаются вручную. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
(1) Get-WmiObject -Query 'select * from Win32_Service where StartMode="Manual"' | Format-Table Name, DisplayName, State
(2) gwmi -query 'select * from win32_service where StartMode="Manual"' | ft name, displayname, state
(3) gwmi win32_service -filter 'StartMode="Manual"' | ft name, displayname, state
Пусть $a=3. Какая из команд при выполнении выдаст ровно одно сообщение "Значение переменной a равно 3"?
(1) do{Write-Host "Значение переменной a равно $a";$a++}while($a -le 3)
(2) do{Write-Host 'Значение переменной a равно $a';$a++}while($a -le 3)
(3) do{Write-Host "Значение переменной a равно $a";$a++}while($a<=3)
Пусть текущим каталогом является C:folder1folder2folder3. Какой командой можно удалить файл 123.txt в каталоге folder1?
(1) del c:folder1123.txt
(2) del c:folder1123.txt
(3) del ....123.txt
(4) del ..123.txt
Пусть значением переменной %SystemRoot% является строка "C:Windows" (без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:C:=D:% ?
(1) C:Windows
(2) D:
(3) D:Windows
Какие языки поддерживает WSH по умолчанию (без установки дополнительных модулей)?
(1) Perl
(2) VBA
(3) VBScript
Какой из объектов WSH позволяет выводить информацию на экран или в диалоговое окно?
(1) WshShell
(2) WshEnvironment
(3) WScript
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно создать временный текстовый файл со случайным именем (язык VBScript)?
(1) Set F=FSO.OpenTextFile(FSO.GetTempName, true)
(2) Set F=FSO.CreateTextFile(GetTempName, true)
(3) Set F=FSO.CreateTextFile(FSO.GetTempName, true)
Какие возможности имеются в WSH для имитации нажатия клавиш в активном окне приложения Windows?
(1) данная функциональность в WSH отсутствует
(2) метод Echo объекта WScript
(3) метод SendKeys объекта WshShell
Каким образом из сценария на языке VBScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows Active Directory?
(1) Set objNamespace = GetObject("WinNT:")
(2) Set objNamespace = GetObject("LDAP:")
(3) Set objNamespace = CreateObject("LDAP:")
Каким образом можно вывести краткое описание и примеры запуска определенного сценария с разметкой XML?
(1) при запуске сценария указать после его имени ключ /?
(2) внутри сценария вызвать метод WScript.Arguments.ShowUsage
(3) внутри сценария вызвать метод WScript.Arguments.ShowDescription
Какие средства позволяют обращаться к объектам COM непосредственно из командной строки?
(1) сценарии WSH
(2) оболочка Windows PowerShell
(3) интерпретатор Cmd.exe
Сколько дочерних классов может иметь тот или иной класс в пространстве имен CIM?
(1) произвольное количество
(2) только один
(3) ни одного, пространство имен CIM имеет только один уровень в глубину
Допустим, что метод WMI имеет квалификаторы Implemented и Static со значением True. Что это означает?
(1) данный метод реализован в провайдере, однако его нельзя вызывать из экземпляров класса
(2) данный метод используется для создания экземпляров класса
(3) данный метод пока не реализован в провайдере
Каким образом из сценария на языке JScript создать экземпляр объекта SWbemLocator?
(1) objLocator = new ActiveXObject("WbemScripting.SWbemLocator");
(2) objLocator = new ActiveXObject("WMIScripting.SWbemLocator");
(3) objLocator = new ActiveXObject("WMIScript.SWbemLocator");
Каким образом в сценарии получить коллекцию служб, запущенных на локальном компьютере и имеющих ручной режим запуска?
(1)
Set objWMIService = GetObject(«WinMgmts:RootCIMV2)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(2)
Set objWMIService = GetObject(«WinMgmts:RootCIMV2)
colServices = objWMIService.ExecQuery _
(«SELECT * FROM Win32_Service WHERE StartMode = ‘Manual'» )
(3)
Set colServices = objWMIService.ExecQuery _
(«SELECT * FROM Service WHERE StartMode = ‘Manual'» )
Каким образом можно, не прибегая к псевдонимам WMIC, увидеть информацию о всех свойствах и методах класса Win32_Service?
(1) CLASS Win32_Service
(2) WMI_PATH Win32_Service
(3) PATH Win32_Service
Пусть требуется узнать серийный номер операционной системы на компьютере \Comp1. Какие команды позволят это сделать?
(1) /NODE:COMP1 OS LIST SerialNumber
(2) /NODE:COMP1 OS GET SerialNumber
(3) /NODE:COMP1 OS SHOW SerialNumber
Какой тип команд PowerShell реализуется в виде динамических библиотек?
(1) функции
(2) сценарии
(3) командлеты
Требуется вывести в виде списка всю доступную информация о файлах и подкаталогах корневого каталога диска C:. Какие команды решают эту задачу?
(1) dir c: | fl *
(2) dir c: | ft *
(3) dir c: | Format-List *
Какая команда позволит увидеть методы, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
(1) New-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Method
(2) New-Object InternetExplorer.Application | Get-Member -MemberType Method
(3) Create-Object -ComObject InternetExplorer.Application | Get-Member -MemberType Method
Требуется найти и сохранить в переменной $m суммарный размер файлов с расширением avi, хранящихся в каталоге C:Video и всех его подкаталогах. Какие команды решают эту задачу?
(1) $m = 0; dir -recurse c:video* -include *.avi | foreach { $m += $_.length }
(2) $m = 0; dir -recurse c:video* -include *.avi | ForEach-Object { $m += $_.length }
(3) $m = 0; ForEach-Object ($f in dir -recurse c:video* -include *.avi) { $m += $f.length }
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul & echo 2222 ?
(1) ничего не выведется
(2) строка 2222
(3) строки 1111 и 2222
С помощью какого оператора можно завершить работу командного файла?
(1) call :eof
(2) goto :end
(3) goto :eof
Имеется сценарий script.vbs. Какое имя будет иметь файл с параметрами WSH для этого сценария?
(1) myscript.wsh
(2) script.ws
(3) script.wsh
Какой из методов позволяет вывести сообщение в диалоговое окно?
(1) WScript.StdOut.WriteLine
(2) WScript.StdOut.Write
(3) WScript.Echo
Какой метод объекта FileSystemObject позволяет удалять папки?
(1) DeleteFolder
(2) EraseFolder
(3) Delete
Пусть objUser – экземпляр объекта User, соответствующий новому пользователю. Каким образом записать в базу данных учетных записей информации об этом пользователе (язык VBScript)?
(1) objUser.SetInfo
(2) objUser.PutInfo
(3) objUser.Apply
К константам каких внешних объектов можно обращаться по их имени из сценария с разметкой XML?
(1) к константам любых объектов, подключенных с помощью элемента <object>
(2) к константам, описанным в библиотеке типов соответствующего объекта (связь с библиотекой типов должна быть установлена с помощью элемента <reference>)
(3) из сценария с разметкой XML нельзя пользоваться константами внешних объектов
Какие средства позволяют управлять серверами автоматизации в интерактивном режиме?
(1) оболочка Windows PowerShell
(2) сценарии WSH
(3) оболочка Cmd.exe
Каким образом задается путь к объекту WMI, соответствующему службе Messenger, работающей на компьютере \comp1?
(1) \comp1WMI:Win32_ Service.Name="Messenger"
(2) \comp1CIMV2:Win32_Service.Name="Messenger"
(3) \comp1CIMV2:Win32_Service"Messenger"
С помощью какой стандартной утилиты можно остановить службу на удаленной машине, используя методы WMI?
(1) regedit.exe
(2) wmimgmt.msc
(3) wbemtest.exe
Какой из приведенных ниже моникеров WMI задает путь к объекту, соответствующему службе Messenger, запущенной на локальном компьютере?
(1) "WinMgmts:\.RootCIMV2:Win32_Service.Name='Messenger'"
(2) "WinMgmts:RootCIMV2:Win32_Service.Name='Messenger'"
(3) "WinMgmts:\.RootCIMV2Win32_Service.Name='Messenger'"
Каким образом в сценарии получить коллекцию процессов, запущенных на локальном компьютере и начинающихся на букву «F»?
(1)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F*'»)
(2)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
(3)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F_'»)
С помощью какой команды можно создать новый экземпляр класса Win32_Process (запустить новый процесс) с именем Notepad.exe?
(1) CLASS Win32_Process DO CREATE Notepad.exe
(2) CLASS Win32_Process CALL CREATE Notepad.exe
(3) PROCESS CALL CREATE Notepad.exe
Допустим, что на локальном компьютере служба сервера (Lanmanserver) запускается вручную. С помощью какой команды WMIC можно отключить данную службу?
(1) SERVICE WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(2) PATH Win32_Service WHERE (Name="Lanmanserver") SET StartMode="Disabled"
(3) этого сделать нельзя, свойство StartMode псевдонима SERVICE доступны только для чтения
Какой псевдоним используется для командлета Get-ChildItem в целях совместимости имени с оболочкой Cmd.exe?
Требуется вывести в текстовый файл в формате ASCII C:RunningServices.txt информацию о всех службах, работающих на компьютере (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
(1) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status > C:RunningServices.txt
(2) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Out-File C:RunningServices.txt
(3) Get-Service | where {$_.Status -like "Run*"} | ft name, displayname, status | Out-File C:RunningServices.txt -Encoding ASCII
Какая команда позволит увидеть методы, имеющиеся у статического класса System.Environment?
(1) System.Environment | Get-Member -Static -MemberType Method
(2) [System.Environment] | Get-Member –Static -MemberType Method
(3) [System.Environment] | Get-Member -MemberType Method
Какой командлет позволяет установить нужную политику выполнения?
(1) Set-ExecutionPolicy
(2) Get-ExecutionPolicy
(3) Put-ExecutionPolicy
Пусть в текущем каталоге имеются текстовые файлы 1.txt и 2.txt. Требуется объединить эти два файла в файл 3.txt, причем строки результирующего файла 3.txt должны быть отсортированы по алфавиту. Какой командой можно это сделать?
(1) copy 1.txt + 2.txt temp.txt & sort temp.txt > 3.txt & del temp.txt
(2) copy 1.txt + 2.txt 3.txt & sort 3.txt > 3.txt
(3) sort 1.txt > 3.txt & sort 2.txt >> 3.txt
С помощью какого варианта команды if можно проанализировать код выхода вызванной программы?
(1) if exists …
(2) if defined …
(3) if errorlevel …
Какие из имен являются допустимыми для файла со сценарием на языке VBScript?
(1) myscript.vb
(2) сценарий.vbs
(3) сценарий.bas
В каком свойстве хранится полный путь к каталогу, откуда был запущен сценарий?
(1) WshShell.CurrentDirectory
(2) WScript.Path
(3) WScript.ScriptFullName
С помощью какого метода объекта FileSystemObject можно папку C:Folder1 переименовать в папку D:Folder2?
(1) MoveFolder
(2) такого метода нет
(3) Move
Каким образом из сценария на языке VBScript установить связь с сервером автоматизации Microsoft Word?
(1) Set WA=WScript.CreateObject("Word.Application")
(2) Set WA=WScript.CreateObject("Word.Server")
(3) Set WA=WScript.CreateObject("Word.Selection")
Пусть objUser – экземпляр объекта User, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык VBScript)?
(1) objUser.SetPassword "11111111"
(2) objUser.Password="11111111"
(3) objUser.PutPassword "11111111"
Пусть файл со сценарием на языке VBScript имеет имя lib.vbs. Каким образом подключить этот файл к сценарию с разметкой XML?
(1) к сценарию с разметкой XML нельзя подключить внешний файл с другим сценарием
(2) <script language="VBScript" filename="lib.vbs"/>
(3) <script language="VBScript" data-src="lib.vbs"/>
Какие средства автоматизации имеют встроенную справочную систему?
(1) интерпретатор Cmd.exe
(2) WSH
(3) Windows PowerShell
Какое разрешение безопасности должен иметь пользователь для доступа к пространству имен WMI на удаленном компьютере?
(1) Включить учетную запись (Enable Account)
(2) Прочесть безопасность (Read Security)
(3) Включить удаленно (Remote Enable)
С помощью каких утилит из пакета WMI Tools можно вызывать методы классов и объектов WMI?
(1) WMI Event Registration Tool
(2) WMI CIM Studio
(3) WMI Object Browser
Какой из приведенных ниже моникеров WMI нужно использовать для подключения к пространству имен CIMV2 на рабочей станции \Comp1 с дополнительными привилегиями на выключение и удаленное выключение компьютера?
(1) "WinMgmts: {(Shutdown,RemoteShutdown)}!\Comp1RootCIMV2"
(2) "WinMgmts: {Shutdown,RemoteShutdown}!\Comp1RootCIMV2"
(3) "WinMgmts: {(!Shutdown,!RemoteShutdown)}!\Comp1RootCIMV2"
Требуется на локальной машине принудительно завершить работу всех процессов, начинающихся на букву «F». С помощью какого сценария это можно сделать?
(1)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
For Each objProcess in colProcesses
objProcess.Terminate()
Next
(2)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
For Each objProcess in colProcesses
objProcess.Kill()
Next
(3)
Set objService = GetObject(«WinMgmts:RootCIMV2»)
Set colProcesses = objService.ExecQuery(«SELECT * FROM Win32_Process WHERE Name LIKE ‘F%'»)
For Each objProcess in colProcesses
objProcess.Delete()
Next
С помощью какой команды можно вывести имена всех процессов, запущенных в системе, и пути к исполняемым файлам, соответствующим этим процессам в формате CSV (значения свойств разделены запятыми)?
(1) PROCESS SHOW Name, ExecutablePath /FORMAT:CSV
(2) PROCESS GET Name, ExecutablePath /FORMAT:CSV
(3) PROCESS SELECT Name, ExecutablePath /FORMAT:CSV
Каким образом можно с помощью WMIC принудительно завершить все запущенные экземпляры браузера Internet Explorer на рабочей станции \Comp1?
(1) /NODE:Comp1 PROCESS WHERE Name="iexplore.exe" CALL Kill
(2) /NODE:Comp1 PROCESS WHERE Name="iexplore.exe" CALL Terminate
(3) /NODE:Comp1 PROCESS WHERE Name="iexplore.exe" CALL Stop
Предположим, что текущим каталогом является C:Temp. Какая из команд сделает текущим корневой каталог диска C:?
(1) cd
(2) Set-Location
(3) sl
Какой командлет в конвейере позволяет подавить вывод предыдущей команды?
(1) Out-Nil
(2) Out-Null
(3) Write-Null
Какая команда позволит увидеть значение свойства MachineName статического класса System.Environment?
(1) [System.Environment]::MachineName
(2) [System.Environment].MachineName
(3) [System.Environment]:MachineName
Какую команду нужно выполнить, чтобы запретить запуск сценариев без цифровой подписи?
(1) Set-ExecutionPolicy RemoteSigned
(2) Set-ExecutionPolicy AllSigned
(3) Set-ExecutionPolicy Restricted
Требуется сформировать файл ro _info.txt со списком всех файлов, имеющих атрибут «Только для чтения», которые находятся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
(1) dir /s /a:r "C:Мои документы*.*" > ro_info.txt
(2) dir /a:r "C:Мои документы*.*" > ro_info.txt
(3) dir /s /a:r C:Мои документы*.* > ro_info.txt
Какой из языков позволяет напрямую из сценариев вызывать методы объектов WMI?
Пусть объект WshShell в сценарии на языке VBScript создан следующим образом: Set WshShell=WScript.CreateObject("WScript.Shell"). Каким образом создать объект-коллекцию WshEnv, содержащую все переменные среды?
(1) Set WshEnv = WshShell.Environment
(2) WshEnv = WshShell.Environment
(3) Set WshEnv = WScript.CreateObject("WshShell.Environment ")
С помощью каких методов можно удалить непустую папку?
(1) метод DeleteFolder объекта FileSystemObject
(2) метод Delete объекта Folder
(3) нельзя удалять непустую папку
Какой программный идентификатор (ProgID) имеет корневой (главный) объект в объектной модели Microsoft Excel?
(1) Excel.Workbook
(2) Excel.Server
(3) Excel.Application
Пусть objUser – экземпляр объекта User, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык VBScript)?
(1) objUser.SetPassword "11111111"
(2) objUser.Password="11111111"
(3) objUser.PutPassword "11111111"
В языке VBScript поддерживается функция InputBox, выводящее диалоговое графическое окно. Можно ли данную функциональность использовать в JScript-коде?
(1) можно, вызывая в JScript-коде внутри сценария с разметкой XML функцию InputBox напрямую
(2) нет, нельзя
(3) можно, поместив JScript-код в сценарий с разметкой XML и создав в этом сценарии функцию на языке VBScript, внутри которой будет вызываться функция InputBox
К какой группе принадлежит классCIM_LogicalFile?
(1) системный класс
(2) класс общей модели
(3) класс модели расширения
| description | ms.assetid | ms.tgt_platform | title | ms.topic | ms.date | topic_type | api_name | api_type | api_location |
|---|---|---|---|---|---|---|---|---|---|
|
You can use the WMI scripting type library to call WMI Scripting API methods from Microsoft Visual Studio and in Windows Script Host WSF files. |
6ef4e210-0733-4f2a-89c1-1a7aca5a19d9 |
multiple |
Using the WMI Scripting Type Library |
article |
05/31/2018 |
kbArticle |
You can use the WMI scripting type library to call WMI Scripting API methods from Microsoft Visual Studio and in Windows Script Host WSF files.
Using the WMI Scripting Type Library with Microsoft Visual Studio
[!Note]
Visual InterDev 6.0 features have been integrated into Microsoft Visual Studio .NET.
The following procedure describes how to enable the integrated development environment (IDE) to be aware of the WbemScripting type library.
To add the WMI Scripting type library to the project references
-
Select Add References from the Project menu.
-
In the COM tab of the Add Reference box, select Microsoft WMI Scripting V1.2 Library.
-
If no suitable option appears in the References list, add it by using Browse in the References box. The Browse opens an Add Reference box that enables you to locate the WbemScripting type library.
The WbemScripting type library resides in the file Wbemdisp.tlb in the %windir%System32Wbem directory.
-
Select the file and click Open. Microsoft WMI Scripting V1.2 Library appears on the references list. Ensure that you select the box next to this item in the list.
Using the WMI Scripting Type Library with Windows Script Host 2.0
You can include the reference to the WbemScripting.SWbemLocator in a Windows Script Host WSF file, unlike a script written in Visual Basic, Scripting Edition or other scripting languages. This enables you to use constant names instead of values. For example, use WbemAuthenticationLevelPktPrivacy rather than the value 6 when setting authentication.
Scripts can connect with the Scripting API for WMI type library using the following methods:
-
Specifying the WbemScripting GUID in the VBScript methods CreateObject and GetObject.
This alerts Windows Script Host to connect to the WMI object set.
The following VBScript code example creates a new SWbemDateTime object.
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
-
Using the Moniker string «winmgmts:» when obtaining a new or existing object.
The following VBScript code example uses the «winmgmts:» moniker to get the instance of Win32_Process with a Handle property of 0 (zero). Handle is the key property for this class.
Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
-
Referencing the WMI type library using the <reference> tag of the WSH 2.0 XML file format. If you use the <reference> tag, the tag must have either a uuid attribute whose value is the GUID of the WMI type library, or (recommended) an object attribute whose value is the PROGID of any of the WMI scripting objects you can create.
The following VBScript code example uses the PROGID of «WbemScripting» . To run the script, save the text in a file with a .wsf extension.
<?xml version="1.0" encoding="US-ASCII"?> <job> <reference object="WbemScripting.SWbemLocator"/> <script language="VBScript"> set service = GetObject("winmgmts:") ' Following line uses a symbolic ' constant from the WMI type library service.Security_.impersonationLevel = _ wbemImpersonationLevelDelegate </script> </job>
-
Using an <object> tag to create a WMI scripting object. You can specify the id attribute with the value of a name that references the WMI scripting object you want to create, and the progid attribute equal to the PROID of the WMI scripting object.
The following WSH script displays the hostname and the number of processors on the local computer. To run the script, save the text in a file with a .wsf extension.
<?xml version="1.0" encoding="US-ASCII"?> <job> <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/> <script language="VBScript"> strComputer = "." Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "rootcimv2") Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem") For Each objComputer in colSettings Wscript.Echo "System Name: " & objComputer.Name Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors Next </script> </job>
Related topics
-
Scripting in WMI
-
Scripting API for WMI
| description | ms.assetid | ms.tgt_platform | title | ms.topic | ms.date | topic_type | api_name | api_type | api_location |
|---|---|---|---|---|---|---|---|---|---|
|
You can use the WMI scripting type library to call WMI Scripting API methods from Microsoft Visual Studio and in Windows Script Host WSF files. |
6ef4e210-0733-4f2a-89c1-1a7aca5a19d9 |
multiple |
Using the WMI Scripting Type Library |
article |
05/31/2018 |
kbArticle |
You can use the WMI scripting type library to call WMI Scripting API methods from Microsoft Visual Studio and in Windows Script Host WSF files.
Using the WMI Scripting Type Library with Microsoft Visual Studio
[!Note]
Visual InterDev 6.0 features have been integrated into Microsoft Visual Studio .NET.
The following procedure describes how to enable the integrated development environment (IDE) to be aware of the WbemScripting type library.
To add the WMI Scripting type library to the project references
-
Select Add References from the Project menu.
-
In the COM tab of the Add Reference box, select Microsoft WMI Scripting V1.2 Library.
-
If no suitable option appears in the References list, add it by using Browse in the References box. The Browse opens an Add Reference box that enables you to locate the WbemScripting type library.
The WbemScripting type library resides in the file Wbemdisp.tlb in the %windir%System32Wbem directory.
-
Select the file and click Open. Microsoft WMI Scripting V1.2 Library appears on the references list. Ensure that you select the box next to this item in the list.
Using the WMI Scripting Type Library with Windows Script Host 2.0
You can include the reference to the WbemScripting.SWbemLocator in a Windows Script Host WSF file, unlike a script written in Visual Basic, Scripting Edition or other scripting languages. This enables you to use constant names instead of values. For example, use WbemAuthenticationLevelPktPrivacy rather than the value 6 when setting authentication.
Scripts can connect with the Scripting API for WMI type library using the following methods:
-
Specifying the WbemScripting GUID in the VBScript methods CreateObject and GetObject.
This alerts Windows Script Host to connect to the WMI object set.
The following VBScript code example creates a new SWbemDateTime object.
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
-
Using the Moniker string «winmgmts:» when obtaining a new or existing object.
The following VBScript code example uses the «winmgmts:» moniker to get the instance of Win32_Process with a Handle property of 0 (zero). Handle is the key property for this class.
Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
-
Referencing the WMI type library using the <reference> tag of the WSH 2.0 XML file format. If you use the <reference> tag, the tag must have either a uuid attribute whose value is the GUID of the WMI type library, or (recommended) an object attribute whose value is the PROGID of any of the WMI scripting objects you can create.
The following VBScript code example uses the PROGID of «WbemScripting» . To run the script, save the text in a file with a .wsf extension.
<?xml version="1.0" encoding="US-ASCII"?> <job> <reference object="WbemScripting.SWbemLocator"/> <script language="VBScript"> set service = GetObject("winmgmts:") ' Following line uses a symbolic ' constant from the WMI type library service.Security_.impersonationLevel = _ wbemImpersonationLevelDelegate </script> </job>
-
Using an <object> tag to create a WMI scripting object. You can specify the id attribute with the value of a name that references the WMI scripting object you want to create, and the progid attribute equal to the PROID of the WMI scripting object.
The following WSH script displays the hostname and the number of processors on the local computer. To run the script, save the text in a file with a .wsf extension.
<?xml version="1.0" encoding="US-ASCII"?> <job> <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/> <script language="VBScript"> strComputer = "." Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "rootcimv2") Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem") For Each objComputer in colSettings Wscript.Echo "System Name: " & objComputer.Name Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors Next </script> </job>
Related topics
-
Scripting in WMI
-
Scripting API for WMI
Наверняка еще с незапамятных времен, в операционной системе Windows, вам приходилось сталкиваться с аббревиатурой WMI? Это не что иное, как инструментарий управления Windows. Многие специалисты (и пользователи) встречаются с WMI довольно редко, но когда приходится работать с большими и важными корпоративными продуктами, тут уже WMI приобретает я бы сказал ключевое значение, поэтому устранение сбоев в работе WMI является важнейшим фактором работоспособности ключевых компонентов системы. Понятное дело, что информации о WMI превеликое множество, по нему пишутся увесистые серьезные труды на несколько сот страниц мелкого неразборчивого текста, но вся информация, которая необходима мне в данный момент времени, содержится в этой заметке.
Windows Management Instrumentation (WMI) — инструментарий управления Windows, механизм [централизованного] управления и наблюдения за функционированием многочисленных (программных и аппаратных) компонентов компьютерной инфраструктуры под управлением операционной системы Windows.
С момента своего появления в Windows95 OSR2, WMI остается основным механизмом управления для всех пользовательских/серверных операционных систем линейки Windows. Фактически WMI делает доступным создание управляющих приложений (скриптов), целью которых является взаимодействие (сбор информации/управление) с многочисленными, разнородными ресурсами системы Windows. Со временем технология WMI активно развивалась и стала основой для создания серьёзных корпоративных продуктов, таких как Configuration Manager. WMI изначально является расширенной и адаптированной под Windows реализацией промышленного стандарта WBEM:
Web-Based Enterprise Management (WBEM) — модель управления [предприятием] на базе web-стандартов (иначе: при помощи Интернет).
В разработке WBEM участвовал ряд крупных компаний, ставивших своей целью разработку стандартов управления производственной информационной средой, обеспечивающих координацию работы всех физических и логических компонентов [этой среды] из единой точки [управления], не зависящих от типа оборудования, сетевой инфраструктуры, операционной системы и множества других нюансов (стандартизация). Для этого была предложена общая информационная модель (Common Information Model, CIM), служащая для [схематичного] представления физической и логической структуры любого управляемого компонента [на предприятии] в виде масштабируемой объектно-ориентированной информационной модели и описывающая интерфейсы доступа к данным.
Масштабируемость (расширяемость) модели CIM призвана обеспечить [системам/драйверам/приложениям] добавление собственных классов, объектов, методов и свойств.
А поскольку WMI базируется на CIM, то её можно считать открытой унифицированной системой интерфейсов доступа к множеству [контролируемых] параметров, имеющихся у разнородных (аппаратных/программных) компонентов, функционирующих под управлением операционной системы Windows.
Достаточно уже определений, всё же хотелось бы понять, какое это имеет практическое обоснование? Давайте представим себе [абстрактную] ситуацию: возьмем системного администратора Васю Пупкина из первой половины 90-х годов, сервера у него на какой-нибудь версии Windows NT, клиенты вообще не пойми на чём. Внезапно (внезапность вообще частый спутник нашего брата 
WMI обеспечивает решение разнообразных задач управления: например, проведение инвентаризации оборудования и программного обеспечения, мониторинг работы процессов и служб и множество аналогичных.
WMI представляет собой непротиворечивую и расширяемую объектную модель представления широкого спектра объектов (ресурсов): аппаратные/логические устройства, исполняемые процессы, файловая система, реестр, приложения, базы данных и многое многое другое.
WMI построена по объектно-ориентированному принципу, то есть в ней большинство данных, связанных с разнообразными компонентами операционной системы, представлены в виде объектов, их свойств (атрибутов, характеристик объекта) и методов (действий на объектом).
И для тех, кто пока еще слабо разбирается в объектно-ориентированном программировании, скажу что объект (или экземпляр класса) — сложноструктурированное представление информации, которое полностью описывает некую сущность в ОС. Класс — это модель объекта, некое абстрактное понятие, своеобразный «чертеж», содержащий описательную часть, на основе которой затем создаются объекты. Класс описывает свойства и методы, доступные у создаваемых впоследствии по этому описанию объектов. WMI поддерживает запросы от управляющих приложений на следующие операции:
- получение/изменение элементов данных (свойств) управляемых объектов.
- вызов методов управляемых объектов (действий над управляемыми объектами).
- выполнение запросов к набору данных управляемых объектов.
- регистрация для получения событий от управляемых объектов.
Инфраструктура WMI
WMI представляет собой уровень абстракции между приложениями и сценариями управления с одной стороны, и управляемыми ими физическими и логическими ресурсами с другой. Выражаясь иначе, WMI должна обеспечивать связь управляющих программ с управляемыми объектами, и обеспечивает она это при помощи следующих компонентов.
Служба/сервис WMI
В системе за всё это отвечает компонент под названием Менеджер объектов CIM (Common Information Model Object Manager, CIMOM), занимающийся обслуживанием взаимодействия управляющих приложений с WMI-провайдерами и управлением хранилищем базы данных WMI (репозиторием). Традиционно, как и большинство подобного функционала, CIMOM реализован в системе в виде службы, которая в данном конкретном случае носит название Инструментарий управления Windows. Исполняемый модуль, содержащий весь функционал (функции CIMOM) службы WMI, именуется winmgmt.exe и размещается в директории %SystemRoot%System32Wbem. В разных версиях операционной системы Windows служба WMI запускалась по-разному:
| Версия | Метод запуска |
|---|---|
| Windows 2000- | Менеджер запускался в качестве отдельной службы Windows. При таком способе WMI-провайдеры загружались в единое адресное пространство процесса, таким образом при падении одного провайдера мог завалиться весь процесс целиком. Вдобавок это порождало проблемы безопасности. |
| Windows XP |
Все компоненты службы WMI запускаются в контексте общего хоста служб SVCHOST.
|
| Windows Vista+ | Усовершенствована изоляция процессов путем загрузки провайдеров WMI в один или несколько экземпляров WMIPrvse.exe. Доработки в стабильности и безопасности WMI, включая задание уровней изоляции процессов, контекста безопасности, лимита ресурсов для провайдеров WMI. |
CIMOM запускается в контексте общего хоста служб (svchost), но может быть и запущен в качестве отдельного процесса. Провайдеры WMI должны быть зарегистрированы при помощи CIMOM для корректного перенаправления запросов от конечного (управляющего) приложения к целевому провайдеру. В дополнение ко всему, для доступа к WMI из сценариев, в системе присутствует библиотека поддержки сценариев WMI (WMI scripting library), которая располагается в файле wbemdisp.dll. Параметры конфигурации сервиса WMI представлены в ключе реестра:
- HKEY_LOCAL_MACHINESoftwareMicrosoftWBEM
WMI предоставляет доступ к собственным ресурсам через программный интерфейс компонентной объектной модели (COM API).
Провайдеры WMI
Когда управляющему приложению требуется получить какую-либо информацию от управляемых системных ресурсов, служба WMI (Winmgmt) должна иметь четкое представление (понимать) как работать с тем или иным запрашиваемым ресурсом, за это сопряжение ответственны так называемые провайдеры (поставщики) WMI.
Таким образом, WMI-провайдеры обеспечивают связь между менеджером объектов CIM и управляемыми ресурсами.
Из этого следует, что фактически провайдеры WMI маскируют [собой] детали внутренней реализации управляемых ими объектов, позволяя CIMOM взаимодействовать с подконтрольными провайдерам объектами единообразно, используя WMI API. Для лучшего понимания механизма можно провести аналогию между WMI-провайдерами и драйверами устройств: они так же обеспечивают взаимодействие с аппаратным или программным ресурсом (или набором ресурсов). Провайдеры (поставщики) являются основой WMI, поскольку:
Практически все классы WMI и соответствующие им методы реализованы посредством провайдеров WMI.
Провайдеры WMI обычно представлены в системе в виде пары файлов:
- MOF-файла, определяющего классы событий/данных (для которых данные будут предоставляться);
- исполняемого модуля (формата DLL/EXE/***-файла), содержащего код, обеспечивающий весь процесс обработки/предоставления данных;
Выбор файла-контейнера для хранения кода достаточно широкий, поскольку любое приложение в системе (включая и драйвера) теоретически может функционировать в качестве провайдера (поставщика) WMI и создавать собственные классы WMI. Тем не менее, код провайдеров чаще представляется следующими методами:
- в качестве динамических библиотек (COM DLL) пользовательского режима;
- в качестве драйверов режима ядра;
Каждый WMI-провайдер имеет собственные идентификаторы CLSID, зарегистрированные в системном реестре и ассоциированные с ним для дальнейшего разрешения COM. Данный CLSID используется для поиска соответствующей библиотеки (DLL), реализующей весь функционал провайдера. WMI провайдер собирает данные: например, при запросе списка процессов — опрашивает все работающие/запущенные в системе процессы, при работе с реестром — перечисляет ключи реестра, и так далее.
Классически провайдеры реализуются в виде COM/DCOM-серверов, представленных в виде библиотек (DLL), обычно располагающихся в каталоге %SystemRoot%System32Wbem.
В то время как служба WMI обслуживает управляющие приложения через COM-интерфейс, WMI-провайдеры действуют в качестве COM-серверов, обрабатывающих запросы от службы WMI. Когда провайдер загружается, он регистрирует собственное положение и классы, объекты, свойства, методы и события, которые он предоставляет [в WMI]. WMI использует эту информацию для перенаправления запросов к соответствующему провайдеру. Так же взаимодействие между разными участниками WMI может происходить:
- локально — через COM-интерфейс;
- удаленно — через DCOM-интерфейс или [более современный] Windows Remote Management (WinRM).
WMI обрабатывает запросы от управляющих приложений следующим образом:
- [Управляющее] приложение отправляет запрос к WMI, которая, в свою очередь, перенаправляет его к соответствующему провайдеру (поставщику).
- Провайдер выполняет взаимодействие с запрошенным системным ресурсом и возвращает результат к WMI.
- WMI передает ответ [обратно] к вызвавшему приложению. Ответ может быть актуальными данными [запрашиваемого] ресурса или результатом выполнения [требуемой] операции.
Microsoft предлагает некоторое количество «встроенных» провайдеров в составе дистрибутива операционной системы Windows: журнала событий, системного реестра, файловой системы и некоторых других.
Репозиторий (хранилище)
Как было сказано выше, WMI базируется на том, что информация о состоянии любого управляемого объекта может быть представлена в виде общей информационной модели (CIM), которая сама по себе фактически и является хранилищем объектов и классов, моделирующих различные компоненты компьютерной системы. Таким образом, в общем случае:
Репозиторий CIM — хранилище модели CIM.
или более адаптированно для реалий операционной системы:
WMI (CIM) Репозиторий — это дисковая база данных, используемая для хранения «откомпилированного представления» объектов WMI (определений классов и экземпляров пространств имен) и обеспечивающая эффективный (оптимизированный) доступ к ним.
Где класс выступает в качестве модели (шаблона) управляемого объекта (фактически любого компонента операционной системы: процесса, сервиса, файловой системы, события, диска и многого другого). В файловой системе репозиторий располагается по пути: %SystemRoot%System32WbemRepository и состоит из следующих файлов (для Windows 7):
| Имя | Описание |
|---|---|
| index.btr | Индекс (индексный файл, словарь), содержащий ключи и адреса записей в файле данных (objects.data). Содержит индекс Би-дерева, используемым для поиска CIM-записей в файле objects.data. Ключи в индексе являются ASCII-строками, которые содержат хеш данных [фиксированной длины]. Когда необходимо извлечь объект из objects.data, используется индекс для быстрого поиска смещения. |
|
mapping1.map mapping2.map mapping3.map |
Порядковый номер в заголовке каждого файла сопоставления помогает службе WMI выбрать активный файл сопоставления. [Активный] файл сопоставления определяет, как именно сопоставить номер страницы логических данных с номером страницы физических данных внутри файлов objects.data и index.btr. Без этих сопоставителей, невозможно корректно интерпретировать данные в файле objects.data. |
| objects.data | Данные объектов. Собственно, сам репозиторий. Файл objects.data содержит CIM-записи в двоичном формате. В ранних версиях Windows репозиторий размещался в файле cim.rep. |
Данные в WMI могут быть двух типов:
- статические (откомпилированные) данные — доступны в определении класса или объекта и хранятся в репозитории WMI;
- динамические (формируемые в процессе) данные — доступны в виде ответа на запрос к WMI-провайдеру (создаются «на лету»). например, объекты Win32_Process, которые генерируются в ходе опроса дерева процессов.
Но чаще всего в модели CIM хранятся классы, которые соответствуют динамически изменяемым ресурсам, поэтому объекты-экземпляры таких классов создаются провайдером по запросу потребителя WMI и не хранятся постоянно в репозитории CIM, поскольку состояние большинства WMI-совместимых устройств меняется довольно быстро и непрерывное обновление информации в репозитории [CIM] может существенно влиять на производительность операционной системы.
В дополнение ко всему, в репозитории WMI хранится информация о безопасности WMI.
Судя по всему, WMI использует доработанную версию Microsoft Jet Database Engine для доступа к данным репозитория, поддерживающую вставку, удаление, поиск ключей и сопоставление по префиксу ключа (спасибо, кэп).
MOF
Спецификация CIM, помимо всего прочего, включает в себя описание языка, предназначенного для предоставления понятного человеку способа описания структур CIM. WMI использует так называемый формат управляемого объекта (MOF, Managed Object Format) в качестве языка, используемого для описания классов CIM.
MOF представляет собой язык (формат, способ) описания классов, экземпляров [классов] и иных структур CIM с использованием специализированных директив, описываемых в привычном для нас текстовом формате. Базируется на языке описания интерфейсов (Interface Definition Language, IDL).
MOF-файл содержит директивы, задающие: имена сущностей, которые могут быть запрошены, типы полей в сложных классах, и разрешения, связанные с группами объектов. Структуры подавляющего большинства объектов WMI описываются парой файлов следующих форматов:
- <имя_файла>.mof — общее описание объектов;
- <имя_файла>.mfl — локализованное описание объектов;
Данные, содержащиеся в файлах MOF при помощи специальных утилит компилируются и сохраняются в репозитории WMI. Например, mofcomp.exe фактически выполняет компиляцию/вставку данных, описанных в файлах MOF, в репозиторий CIM. Можно сказать, что MOF это фактически объектно-ориентированный язык, позволяющий описывать:
- Пространства имен — Классы
- Свойства
- Методы
- Квалификаторы
- Интерфейсы
- Ссылки
- Комментарии
Разработчик может создавать собственные классы [данных], предоставляющие данные, доступные через уже имеющиеся в системе провайдеры WMI, такие (например) как данные системного реестра. В этих случаях, администратор должен импортировать сторонние mof-файлы. Например, файл провайдера SMS smsprov.mof содержит определения [на MOF-языке], описывающие пространство имен RootSMS и содержащиеся в нем классы. MOF использует синтаксис C++ и предоставляет [своеобразный] шаблон для описания WMI-объекта. В то время, как WMI-провайдеры генерируют неструктурированные данные, MOF-файлы представляют шаблоны, в которых сгенерированные данные форматированы.
Классы и пространства имен WMI
Классы WMI сгруппированы в пространства имен (namespaces), которые выстроены иерархически в виде дерева (с единым корнем) и напоминают используемые в традиционных объектно-ориентированных языках программирования.
Пространство имен WMI – это группировка (контейнер) классов и объектов, объединенных по назначению, то есть относящихся к определенной технологии или области управления.
Вне зависимости от версии WMI в системе имеется несколько предопределенных пространств — корневое пространство имён Root, и 4 пространства, располагающихся уровнем ниже: CIMv2, Default, Security и WMI. Все пространства имен являются производными от КОРНЕВОГО (Root) пространства имен. Пространства имен организуют в себе классы WMI и другие элементы, таким образом их проще представить себе в качестве контейнера или каталога файловой системы. Некоторые пространства имен содержат вложенные пространства имен, и так далее. Классы объектов WMI распределены иерархически в пространства имен, похожих на используемые в традиционных объектно-ориентированных языках программирования. Одно из существующих в Windows пространств имен назначается пространством по умолчанию, в стандартной поставке им является пространство имен RootCIMV2. Таким образом, при запросах объектов, в которых явно не задано пространство имен, будем выбрано пространство по умолчанию.
Язык запросов WMI (WQL)
Очевидно было бы крайне неудобно ограничивать доступ из управляющих приложений (потребителей WMI) к управляемым объектам лишь функциями WMI API (доступного исключительно из кода приложений), гораздо универсальнее создать специализированный удобочитаемый язык запросов, который может быть использован в различного вида инструментарии (программах/консолях). Для этой цели был разработан Язык запросов WMI:
WMI Query Language (WQL) — язык запросов, предоставляющий простой синтаксис для обращения к экземплярам объектов, классам и пространствам имен WMI. С использованием подобных запросов и происходит обращение потребителей (управляющих приложений) WMI к управляемым объектам WMI. WQL, в свою очередь, является Microsoft-адаптацией языка запросов CIM (CIM Query Language, CQL).
Тем не менее не все провайдеры управляемого объекта поддерживают WQL, в подобных ситуациях менеджер объектов CIM должен преобразовать запрос к виду, обрабатываемому [конкретным] провайдером. WQL представляет собой специально сконструированные запросы, которые являются подмножеством (подвидом) SQL. Концептуальное отличие от ANSI SQL — это отсутствие инструкций для изменения данных, то есть при помощи WQL возможна лишь выборка данных с помощью команды SELECT. Помимо ограничений на работу с объектами, WQL не поддерживает такие операторы как DISTINCT, JOIN, ORDER, GROUP, математические функции, а конструкции IS и NOT IS применяются только в сочетании с константой NULL. WQL запросы можно протестировать при помощи GUI-утилиты wbemtest и CUI-утилиты wmic (утилита wmic не требует указания ключевого слова SELECT и полей выборки), а затем применять их в собственных скриптах.
Права доступа к пространствам имен
Механизм безопасности действует в WMI на уровне пространств имен. Для каждого пространства может быть определен собственный дескриптор безопасности, содержащий таблицу контроля доступа. Каждая запись таблицы контроля доступа содержит информацию о том, какие права (разрешения) имеет [тот или иной] пользователь при выполнении операций в данном пространстве имен. Несмотря на то, что пространства имен расположены по идентичному пути, то есть имеют единый корень, привилегии отличны для каждого пространства имен, и поэтому разрешения дочернего пространства имен не наследуются от родительского. Чтобы проверить/назначить разрешения WMI, выполните следующие действия:
- Пуск → Администрирование и выберите пункт Управление компьютером;
- Разверните узел Службы и приложения и щелкните правой кнопкой мыши элемент управления WMI;
- Правая кнопка мыши → выберите пункт меню Свойства, чтобы открыть диалоговое окно Свойства элемента управления WMI;
- Перейдите на вкладку Безопасность и разверните корневой узел Root. Выберите требуемый объект пространства имен (установив курсор), затем нажмите кнопку Безопасность;
Отладка/запись событий WMI
Похоже в ранних реализациях настройка журнала событий WMI находилась в свойствах элемента управления WMI, однако в новых версиях её перенесли в общий Просмотр событий.
- Открыть Просмотр Событий (Event Viewer, Eventvwr).
- В меню Вид, выбрать Отобразить аналитический и отладочный журналы.
- В дереве в левом фрейме разворачиваем пункт Журналы приложений и служб (Applications and Service Logs) → Microsoft → Windows → WMI Activity
- Правую кнопку мыши на пункте Trace и выбираем Включить журнал (Enable Log). Если выбрать Свойства из того же меню, то можно увидеть куда пишутся события трассировки: %SystemRoot%System32WinevtLogsMicrosoft-Windows-WMI-Activity%4Trace.etl.
Инструменты для взаимодействия с WMI
| Наименование | Назначение |
|---|---|
| wmimgmt.msc | Оснастка консоли управления [MMC] для настройки WMI (локальная система). |
| winmgmt.exe | Консольная утилита управления WMI (локальная система). |
| wbemtest.exe | Утилита [с графическим интерфейсом] для взаимодействия с инфраструктурой WMI: подключение к пространству имен, выполнения операций (локальная/удаленная система). |
| wmic.exe | Консольная утилита для взаимодействия со структурой WMI (локальная/удаленная система). |
| wmidiag.vbs | Утилита (скрипт) диагностики WMI, разработанный MS. На данный момент недоступна на официальном сайте MS, поскольку некоторые версии WMIDiag корректно работали только с определенными версиями ОС Windows. |
| mofcomp.exe | Компилятор MOF-файлов. Выполняет анализ директив (инструкций) MOF-файла и добавление определенных там классов/экземпляров классов в репозиторий WMI (локальная система). |
| Windows Scripting Host (WSH) | в Windows представлены два языка, базирующихся на WSH: VBScript и JScript. Несмотря на то, что эти языки [морально] устарели, оба всё еще остаются мощными скриптовыми языками, прекрасно решающими задачи по взаимодействию с WMI. |
| Powershell | Язык сценариев от разработчиков. |
| winrm.exe | Консольная утилита для удаленного управления Windows. Может быть использована для перечисления экземпляров объектов WMI, вызова методов, создания/удаления экземпляров объектов посредством службы WinRM (локальная/удаленная система). При помощи утилиты можно задавать параметры сервиса WinRM. |
| C/C++ | Есть возможность взаимодействовать с WMI с помощью «неуправляемого» кода, написанного на C/C++, для этого используется Component Object Model (COM) API для WMI. Для этого существует набор интерфейсов IWbem* и некоторых других. |
| .NET | Библиотека классов .NET предоставляет несколько WMI классов в рамках пространства имен System.Management, взаимодействующих с WMI в языках C#, VB.Net, and F#. |
Ошибки WMI
Причиной зачастую бывает падение службы WMI, что может повлечь за собой повреждение репозитория со всеми вытекающими. Поэтому:
Если репозиторий имеет те или иные повреждения, то служба WMI нормально функционировать не будет.
Ну а последствия неправильного функционирования службы WMI в системе следующие:
- отказ в запуске [зависимых от WMI] системных служб;
- отказ в установке/запуске приложений [зависимых от WMI];
- некорректная работа объектов групповых политик;
- ошибки при выполнении скриптов [использующих WMI];
Более осязаемые проявления проблем с сервисом/репозиторием WMI:
- Ошибки в log-файлах самих приложений: WBEM_E_NOT_FOUND — 0x80041002.
- Ошибки отказа при подключении к пространствам имен
RootDefaultилиRootcimv2; - Ошибка/подвисание при открытии свойств WMI в оснастке Управление компьютером: «WMI : Not Found», «0x80041010 WBEM_E_INVALID_CLASS», «Filed to initialize all required WMI classes»;
- Подвисание разных утилит по работе с WMI (wbemtest и прч);
- Отсутствие в репозитории некоторых схем/классов/объектов;
- Проблема в запуске SCCM-агента (WBEM_E_INVALID_CLASS — 0x80041010);
- Ошибки подключения/операций (0x8007054e);
- Ошибки подгрузки WMI-провайдеров: WBEM_E_PROVIDER_LOAD_FAILURE — 0x80041013;
- Ошибки доступа при попытке доступа к WMI-объектам: E_ACCESS_DENIED — 0x80070005;
- Ошибки поиска пространств имен: WBEM_E_INVALID_NAMESPACE — 0x8004100E;
- Ошибки в Журнале событий Windows (Приложение) — источник WinMgmt, EventID — 10;
Восстановление WMI
Доступный на данный момент в системе/Сети инструментарий диагностических инструментов WMI даёт возможность довольно скрупулезно подойти в вопросу восстановления работоспособности WMI, но кто бы еще так же детально (тонко) этот WMI понимал, так что процесс этот довольно трудоемкий. Поэтому поступают проще и обычно используют основные методы:
- Набор действий по восстановлению репозитория через утилиты командной строки;
- [многочисленные] скрипты по восстановлению репозитория/перекомпиляции mof/mfl, перерегистрации провайдеров;
Эти методики подходят для большинства ситуаций, которые могут встретиться на рабочих станциях пользователей/серверах. Тем не менее, имеется несколько тонких моментов в логике восстановления работоспособности WMI, и их нужно непременно усвоить:
- Самым примитивным способом восстановления репозитория является удаление/переименование его рабочей директории. То есть, вы переименовываете директорию %SystemRoot%System32WbemRepository, к примеру, в Repository.old и ждете. После определенного таймаута сервис определит отсутствие директории репозитория и запустит процедуру восстановления. Но этот простой способ особенно никем не применяется, поскольку не учитывает перекомпиляцию не входящих в автовосстановление (список .mof в реестре) классов и не выполняет перерегистрацию провайдеров.
- Вне зависимости от того, где и как оно применяется, удаление рабочего WMI-репозитория является достаточно разрушительной операцией, которая может повлечь за собой потерю данных, возникновение ошибок в WMI-приложениях, замедление отклика некоторых операций, и возникновении других, сложнодиагностируемых проблем.
- Существуют приложения, которые в процессе установки в систему [самостоятельно] напрямую обновляют репозиторий, вообще не используя никаких .mof-файлов. Соответственно, при пересоздании (удалении и создании) репозитория подобные приложения не имеют возможности обновить базу данных и их данные, связанные с WMI, будут удалены (потеряны) вплоть до момента, пока вы не переустановите означенные приложения (в режиме восстановления).
- Следует помнить, что не все приложения хранят свои WMI-провайдеры (.dll) и .mof-файлы в %SystemRoot%System32wbem. Соответственно, вам нужно будет выявить подобные приложения (поиск по маске
*.mof), и либо произвести их переустановку, либо выполнить ручную регистрацию провайдеров (библиотек) и перекомпиляцию .mof-файлов. - Существуют .mof-файлы, которые содержат директивы вида #pragma deleteclass или #pragma deleteinstance. По хорошему, некоторые источники советуют временно перемещать подобные файлы в стороннюю директорию перед потоковой перекомпиляцией всех .mof-файлов. Но никто этого делать не хочет, ну и мы не будем.
- [ начиная с Windows7 ] в каталоге репозитория можно обнаружить файлы, содержащие информацию об удалении, такие как OfflineFilesWmiProvider_Uninstall.mof, Wdf01000Uninstall.mof, Win32_EncryptableVolumeUninstall.mof, WinsatUninstall.mof, wpcuninst.mof, WsmAgentUninstall.mof, WUDFxUninstall.mof, в именах которых присутствует слово uninstall. И если скрипты перечисляют и компилируют все без исключения файлы, то компиляция подобных файлов приведет к удалению классов, соответственно последние станут недоступны. Но эту проблему можно обойти путем исключения.
- Перекомпиляция MOF-файлов зачастую должна производиться в определенной последовательности. Например, классы в файле [условно] 1.mof могут зависеть от классов, указанных в файле 2.mof. Если последние отсутствуют, утилита mofcomp.exe не будет добавлять классы. Для того, что бы подобрать правильную последовательность, нужно знать зависимости для всех классов, представленных в системе. Возможно эту проблему можно частично решить перекомпиляцией каких-то базовых (основных) .mof-файлов в первую очередь, перед основным циклом перекомпиляции всех остальных. Поэтому скрипты на данный момент не делают всё идеально, но все-равно даже это работает и приносит результат
- Везде встречаются рекомендации о том, что сперва надо компилировать .mof-файлы, а затем уже их локализованные .mfl-копии. Когда все файлы размещались в одной директории, было удобно, но в последних версиях ОС .mfl переехали в локализованные поддиректории (например, ru-RU), поэтому проход по *.mfl надо делать с учетом вложенных директорий?
- Имеются рекомендации, что в 64-битных ОС работу ручную перекомпиляцию репозитория надо выполнять из директории %SystemRoot%SysWOW64wbem, а на 32-битных системах из %SystemRoot%System32wbem, но оказалось, что (в ОС, начиная с Windows 7) в директории для 64-битной ОС отсутствуют многие .mof файлы, что меня лично настораживает. Рекомендация могла устареть? К тому же, большинство на это забивает и радуется
Поэтому вы уже поняли, что приведенные тут решения несовершенны, но в реальных боевых условиях не раз помогали избавиться от проблем с WMI (даже удивительно).
Метод 1
Самое правильное, это всегда начинать с наименее деструктивных техник работы с репозиторием, например с помощью входящей в состав дистрибутива утилиты winmgmt. Выполните следующую команду (начиная с Windows Vista/Server 2008):
winmgmt /verifyrepository
Если проверка вернула ошибку (например, WMI repository is INCONSISTENT), то выполняем перестроение репозитория:
winmmgmt /salvagerepository
Затем повторно проверяем репозиторий:
winmgmt /verifyrepository
Ну и если перестроение не дало результата и вы всё еще получаете ошибки, то можно воспользоваться более деструктивным методом (серия: остановка службы + сброс репозитория):
net stop winmgmt /y
winmgmt /resetrepository
Метод 2
Потенциально, приведенный в данном методе скрипт достаточно разрушителен, поскольку удаляет рабочий репозиторий. Тем не менее, при всех своих недостатках метод достаточно эффективен и не раз меня выручал. Следующий powershell-скрипт оптимизирован для использования под Windows 7 и выше, представляет собой последовательность действий по сохранению (в резервную папку) текущего репозитория, перестроению репозитория (перекомпиляции объектов), перерегистрации компонентных библиотек (провайдеров), а так же учитывает большинство описанных выше нюансов. Создайте файл resetWMI.ps1 и разместите там следующее содержимое:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# Установка текущей директорией %Windir%System32wbem $WBEM = «${Env:Windir}System32wbem» Set-Location -Path $WBEM # Остановка сервиса WMI $WMIService = Get-Service -Name «Winmgmt» $WMIService | Stop-Service -Force -Verbose Start-Sleep -seconds 1 # Переименование существующей директории репозитория if (Test-Path «$WBEMRepository») { Write-Host «Renaming WBEM Repository…» if (Test-Path «$WBEMrepository.bak») { Remove-Item «$WBEMrepository.bak» -Force -Recurse -Confirm:$false } Rename-Item -Path «$WBEMrepository» -NewName «$WBEMrepository.bak» -Force } # Компиляции классов 1-го уровня вперед остальных & mofcomp cimwin32.mof & mofcomp cimwin32.mfl & mofcomp rsop.mof & mofcomp rsop.mfl & mofcomp wmi.mof & mofcomp wmi.mfl # Регистрация всех WMI-провайдеров Get-ChildItem -Path $WBEM -Filter «*.dll» | ForEach-Object { Start-Process regsvr32.exe -ArgumentList «/s»,«`»$_`»» -Passthru -Wait -NoNewWindow } # Регистрация всех WMI-провайдеров Get-ChildItem -Path $WBEM -Filter «*.exe» | Where-Object { ($_.Name -notmatch «wbemtest.exe») -and ($_.Name -notmatch «mofcomp.exe») -and ($_.Name -notmatch «wbemcntl.exe») } | ForEach-Object { Start-Process -FilePath $_.Fullname -ArgumentList «/RegServer» -Passthru -Wait -NoNewWindow } # Компиляция всех .mof Get-ChildItem -Path «$WBEM*» -Include «*.mof» | Where-Object { $_.Name -notlike «*uninstall*» } | ForEach-Object { & mofcomp $_.FullName } # Компиляция всех .mfl Get-ChildItem -Path «$WBEM*» -Recurse -Include «*.mfl» | Where-Object { $_.Name -notlike «*uninstall*» } | ForEach-Object { & mofcomp $_.FullName } # Запуск сервиса WMI $WMIService | Start-Service -Verbose |
скрипт можно сделать менее проблемным, если закомментировать группу инструкций (строки 10-15), которые производят переименование текущего репозитория.
Методы какого объекта библиотеки поддержки сценариев WMI позволяют подключиться к пространству имен WMI?
Какой объект библиотеки поддержки сценариев WMI позволяет удалять экземпляры классов в определенном пространстве имен WMI?
Какой объект библиотеки поддержки сценариев WMI позволяет подключиться к пространству имен WMI на локальной или удаленной машине?
Какое имя имеет сервер сценариев WSH для консольного режима?
Какие из указанных программ являются серверами сценариев WSH?
Какое расширение имеет файл параметров для сценариев WSH?
Какие языки можно использовать для написания сценариев WSH?
Какое имя имеет сервер сценариев WSH для графического режима?
Какие языки можно использовать для написания сценариев PowerShell?
Какой компонент операционной системы отвечает за обращение к объектам WMI из сценариев WSH?


