Правильные ответы выделены зелёным цветом.
Все ответы: В курсе рассматриваются стандартные технологии (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) класс модели расширения
Главная / Операционные системы /
Командная строка и сценарии Windows / Тест 1
Упражнение 1:
Номер 1
В каких версиях операционной системы Windows можно пользоваться командными файлами?
Ответ:
(1) во всех версиях Windows
(2) в Windows NT и выше
(3) в Windows XP и выше
Номер 2
Какие версии операционной системы Windows поддерживают сервер сценариев WSH?
Ответ:
(1) Windows 2000 и выше
(2) все 32-разрядные версии Windows
(3) Windows NT и выше
Номер 3
Какие версии операционной системы Windows поддерживают оболочку PowerShell?
Ответ:
(1) Windows XP SP2 и выше
(2) все 32-разрядные версии Windows
(3) Windows 2000 и выше
Упражнение 2:
Номер 1
Какие средства позволяют напрямую обращаться к объектам WMI?
Ответ:
(1) оболочка WMIC
(2) сценарии WSH
(3) интерпретатор Cmd.exe
Номер 2
Какие средства позволяют напрямую обращаться к объектам .NET?
Ответ:
(1) оболочка WMIC
(2) сценарии WSH
(3) оболочка Windows PowerShell
Номер 3
Какие средства позволяют обращаться к объектам WMI непосредственно из командной строки?
Ответ:
(1) оболочка WMIC
(2) оболочка Windows PowerShell
(3) интерпретатор Cmd.exe
Упражнение 3:
Номер 1
Какие языки можно использовать для написания сценариев WSH?
Ответ:
(1) Microsoft VBScript
(2) Microsoft JScript
(3) Microsoft C#
Номер 2
Можно ли написать сценарий WSH на языке Perl?
Ответ:
(1) нет
(2) да, Perl поддерживается по умолчанию
(3) да, но требуется установка специального модуля поддержки Perl
Номер 3
Какие языки можно использовать для написания сценариев PowerShell?
Ответ:
(1) Microsoft VBScript
(2) собственный язык Windows PowerShell
(3) Microsoft C#
Упражнение 4:
Номер 1
Какое средство автоматизации предлагает собственную объектную модель?
Ответ:
(1) Cmd.exe
(2) Windows PowerShell
(3) WSH
Номер 2
Можно ли написать сценарий WSH на языке Python?
Ответ:
(1) нет
(2) да, Python поддерживается по умолчанию
(3) да, но только после установки модуля поддержки Python
Номер 3
Какие средства позволяют обращаться к объектам COM непосредственно из командной строки?
Ответ:
(1) сценарии WSH
(2) оболочка Windows PowerShell
(3) интерпретатор Cmd.exe
Упражнение 5:
Номер 1
Можно ли в Windows использовать стандартные Unix-утилиты?
Ответ:
(1) да, после установки пакета Services for Unix
(2) да, Unix-утилиты поддерживаются по умолчанию
(3) нельзя
Номер 2
Какие средства позволяют управлять приложениями-серверами автоматизации?
Ответ:
(1) оболочка Windows PowerShell
(2) сценарии WSH
(3) оболочка Cmd.exe
Номер 3
Какие средства позволяют управлять серверами автоматизации в интерактивном режиме?
Ответ:
(1) оболочка Windows PowerShell
(2) сценарии WSH
(3) оболочка Cmd.exe
Упражнение 6:
Номер 1
Какие из средств автоматизации поддерживают работу в интерактивном режиме?
Ответ:
(1) WSH
(2) WMIC
(3) Windows PowerShell
Номер 2
Какие из средств автоматизации являются оболочками командной строки?
Ответ:
(1) Cmd.exe
(2) WSH
(3) Windows PowerShell
Номер 3
Какие средства автоматизации имеют встроенную справочную систему?
Ответ:
(1) интерпретатор Cmd.exe
(2) WSH
(3) Windows PowerShell
Какие из имен являются допустимыми для файла со сценарием на языке VBScript?
Какие средства позволяют обращаться к объектам WMI непосредственно из командной строки?
Какой метод используется для записи в базу данных учетных записей информации о новой группе?
К константам каких внешних объектов можно обращаться по их имени из сценария с разметкой XML?
Какое имя имеет сервер сценариев WSH для графического режима?
Какой смысл в командном файле имеет параметр %0 ?
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для принудительного завершения сеанса пользователя на удаленной машине?
Какой псевдоним используется для командлета Get-ChildItem в целях совместимости имени с ОС Unix?
Какой уровень вложенности может иметь пространство имен CIM?
Какой программный идентификатор (ProgID) имеет объект SWbemLocator?
Можно ли в Windows использовать стандартные Unix-утилиты?
Какая команда позволяет удаленно перезагрузить рабочую станцию \Comp1?
Пусть в текущем каталоге имеются текстовые файлы 1.txt и 2.txt. Требуется объединить эти два файла в файл 3.txt, причем строки результирующего файла 3.txt должны быть отсортированы по алфавиту. Какой командой можно это сделать?
Каким образом в сценарии получить коллекцию служб, запущенных на локальном компьютере и имеющих ручной режим запуска?
Какая команда WMIC используется для выполнения методов классов и объектов WMI?
Какой символ позволяет отключить дублирование отдельной строки в командном файле?
Пусть в папке C:Folder1 хранится файл 1.txt. К какому результату приведет выполнение в сценарии на языке VBScript команды FSO.DeleteFolder «C:Folder1», если FSO – экземпляр объекта FileSystemObject?
Каким образом можно с помощью WMIC принудительно завершить все запущенные экземпляры браузера Internet Explorer на рабочей станции \Comp1?
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно файл C:1.txt переименовать (переместить) в файл D:2.txt (язык VBScript)?
Пусть D – экземпляр объекта Drive, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.TotalSize/(1024*1024*1024). Чему после этого равно значение переменной n?
Какие из указанных ниже элементов входят в схему WS XML?
Какая команда позволит увидеть свойства, имеющиеся у статического класса System.Environment?
Какой метод объекта FileSystemObject позволяет удалять папки?
Какой из указанных ниже операторов командного файла выведет на экран имена всех переменных среды?
Какой программный идентификатор (ProgID) имеет корневой (главный) объект в объектной модели Microsoft Word?
Каким образом на языке VBScript можно создать объект-коллецию всех аргументов командной строки запущенного сценария?
Какая команда позволит увидеть значение свойства CommandLine статического класса System.Environment?
Какой из методов объекта WScript позволяет принудительно завершить работу сценария?
Какая команда позволяет увидеть список всех командлетов, в названии которых содержится глагол Set?
С помощью какого метода можно запустить новый дочерний процесс в сценарии WSH?
Какие версии операционной системы Windows поддерживают сервер сценариев WSH?
Какие языки можно использовать для написания сценариев WSH?
Можно ли написать сценарий WSH на языке Python?
Какие средства позволяют управлять серверами автоматизации в интерактивном режиме?
Какие из средств автоматизации являются оболочками командной строки?
Как назывался файл командного интерпретатора в Windows 98?
Какой командой интерпретатора Cmd.exe можно создать файл xcopy_help.txt с описанием всех параметров команды XCOPY?
Пусть текущим каталогом является C:folder1folder2folder3, а в каталоге folder2 имеется еще один подкаталог folder4. Какими командами можно переместиться в каталог folder4?
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul || echo 2222 ?
Какими командами можно изменить расширения на js для файлов, находящихся в текущем каталоге, имеющих расширение vbs и имя которых состоит только из одного или двух символов?
Требуется сформировать файл hidden _info.txt со списком всех скрытых файлов, находящихся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
Можно ли в командных файлах пользоваться внутренними командами интерпретатора Cmd.exe и каким образом?
Сколько параметров командной строки можно обработать в пакетном файле?
Пусть значением переменной %SystemRoot% является строка «C:Windows» (без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:~0,3% ?
Какой командой можно приостановить работу пакетного файла?
С помощью какого варианта команды if можно проанализировать код выхода вызванной программы?
Какой из указанных ниже операторов командного файла выведет на экран список всех папок в корне на диске D:?
Какие из указанных программ являются серверами сценариев WSH?
С помощью какой команды можно в консольном режиме подавить вывод на экран из сценариев сообщений об ошибках?
Какие языки поддерживает WSH по умолчанию (без установки дополнительных модулей)?
Какое расширение имеет файл параметров для сценариев WSH?
Какое расширение может иметь файл со сценарием на языке JScript?
Какой из языков позволяет напрямую из сценариев вызывать методы объектов WMI?
Каким образом в сценарии создается экземпляр объекта WScript?
Какой из объектов WSH позволяет получить доступ к специальным папкам Windows?
Какой из объектов WSH позволяет выводить информацию на экран или в диалоговое окно?
Каким образом можно из сценария создать экземпляр внешнего объекта-сервера автоматизации?
Какой программный идентификатор (ProgID) имеет объект WshNetwork?
Пусть объект WshShell в сценарии на языке VBScript создан следующим образом: Set WshShell=WScript.CreateObject(«WScript.Shell»). Каким образом создать объект-коллекцию WshFldrs, содержащую пути ко всем специальным папкам Windows?
Каким образом в сценарии на языке VBScript можно создать экземпляр объекта FileSystemObject?
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно создать текстовый файл с именем «Мой файл.txt» (язык VBScript)?
С помощью какого метода объекта FileSystemObject можно файл C:1.txt переименовать (переместить) в файл D:2.txt?
С помощью каких методов можно запустить новый процесс в сценарии WSH?
С помощью какого метода можно завершить работу запущенного дочернего процесса?
Какие возможности имеются в WSH для имитации нажатия клавиш в активном окне приложения Windows?
Каким образом в сценарии WSH можно сымитировать нажатие клавиши <Enter> в активном окне приложения Windows?
Каким образом из сценария на языке VBScript установить связь с сервером автоматизации Microsoft Word?
Какой программный идентификатор (ProgID) имеет корневой (главный) объект в объектной модели Microsoft Excel?
Какой провайдер ADSI используется для доступа к службе каталогов Windows Active Directory?
Какая из приведенных ниже строк ADsPath должна использоваться для связывания с локальной группой Group1 на рабочей станции Comp1 с операционной системой Windows XP?
Каким образом из сценария на языке JScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows NT?
Пусть objUser – экземпляр объекта User, соответствующий новому пользователю. Каким образом записать в базу данных учетных записей информации об этом пользователе (язык VBScript)?
Пусть objUser – экземпляр объекта User, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык VBScript)?
Пусть objUser – экземпляр объекта User, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык VBScript)?
Какой из указанных ниже элементов входит в схему WS XML?
Может ли в сценарии с разметкой XML отсутствовать элемент <package>?
Каким образом можно вывести краткое описание и примеры запуска определенного сценария с разметкой XML?
Пусть файл со сценарием на языке VBScript имеет имя lib.vbs. Каким образом подключить этот файл к сценарию с разметкой XML?
В языке VBScript поддерживается функция InputBox, выводящее диалоговое графическое окно. Можно ли данную функциональность использовать в JScript-коде?
Какими основными компонентами можно представить общую структуру WMI?
Какие из перечисленных ниже функций должен выполнять менеджер объектов CIMOM?
Какими файлами поддерживается репозиторий CIM в Windows XP?
Каким образом задается путь к объекту WMI, соответствующему службе Alerter, работающей на компьютере \comp1?
Какое разрешение безопасности должен иметь пользователь для доступа к пространству имен WMI на удаленном компьютере?
К какой группе принадлежит класс Win32_Process?
Можно ли изменять значения свойств объектов WMI?
Допустим, что класс WMI имеет квалификатор SupportsCreate со значением True. Что это означает?
Допустим, что у определенного метода WMI отсутствует квалификатор Implemented. Что это означает?
Какая стандартная утилита Windows позволяет работать с объектной моделью WMI?
С помощью каких утилит из пакета WMI Tools можно вызывать методы классов и объектов WMI?
Какой компонент операционной системы отвечает за обращение к объектам WMI из сценариев WSH?
Методы какого объекта библиотеки поддержки сценариев WMI позволяют подключиться к пространству имен WMI?
Предположим, что вы зарегистрированы в системе под учетной записью User1 и вам необходимо из сценария WSH подключиться к пространству имен WMI на удаленной машине от имени учетной записи SuperAdmin. Какой вариант подключения следует выбрать?
Каким образом из сценария на языке JScript создать экземпляр объекта SWbemLocator?
Какой из приведенных ниже моникеров WMI задает путь к объекту, соответствующему службе Messenger, запущенной на локальном компьютере?
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1?
Какой класс WMI позволяет перезагрузить удаленный компьютер?
Какой класс WMI позволяет узнать серийный номер операционной системы?
Какой запрос на языке WQL позволит получить набор всех процессов, начинающихся на букву «F»?
Требуется на локальной машине принудительно завершить работу всех процессов, начинающихся на букву «F». С помощью какого сценария это можно сделать?
Какая команда WMIC позволяет выйти из этой оболочки?
Допустим, что нам необходимо выполнять команды WMIC на нескольких компьютерах, список которых хранится в файле C:list_comp.txt. Какой глобальный параметр WMIC следует для этого использовать?
Какой глобальный параметр позволяет перенаправить вывод всех команд WMIC во внешний текстовый файл c:wmic_out.txt (без дублирования выводимой информации на экране)?
Какая команда WMIC позволяет работать с экземплярами классов WMI напрямую, без использования псевдонимов?
С помощью какой команды можно увидеть имена всех процессов, запущенных в системе, и пути к исполняемым файлам, соответствующим этим процессам?
Какие форматы вывода поддерживает WMIC по умолчанию?
С помощью какой команды можно сформировать файл C:s.htm с несколькими HTML-таблицами, содержащими полные сведения (все свойства) о всех службах, зарегистрированных на локальном компьютере (одна таблица для каждой службы)?
Какая команда позволяет удаленно выключить рабочую станцию \Comp1?
Пусть требуется узнать букву последнего логического диска на компьютере \Comp1. Какие команды позволят это сделать?
Допустим, что на локальном компьютере служба сервера (Lanmanserver) отключена. С помощью какой команды WMIC можно изменить режим запуска данной службы на автоматический?
Какая команда позволяет увидеть список всех доступных командлетов?
Какая команда позволит увидеть, какому командлету соответствует псевдоним cls?
Какая команда позволяет увидеть примеры использования командлета Get-Process?
Какое расширение должны иметь файлы, содержащие сценарии PowerShell?
Какой псевдоним используется для командлета Get-ChildItem в целях совместимости имени с оболочкой Cmd.exe?
Предположим, что текущим каталогом является C:Temp. Какая из команд сделает текущим корневой каталог диска C:?
Требуется узнать, какие свойства имеют объекты, возвращаемые командлетом с псевдонимом dir. Какая команда позволяет сделать это?
Какая из команд выведет список файлов из корневого каталога диска C:, размер которых больше 1 килобайта?
Требуется получить упорядоченный по размеру список файлов из корневого каталога диска C:, размер которых больше 1 килобайта. Вверху списка должен быть самый маленький файл. Какие команды решают эту задачу?
Требуется получить список файлов (без каталогов) корневого каталога диска C: и вывести в виде таблицы имена и размеры данных файлов, а также дату последнего обращения к ним. Какие команды решают эту задачу?
Требуется вывести в текстовый файл в формате ASCII C:RunningServices.txt информацию о всех службах, работающих на компьютере (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
Какой командлет в конвейере позволяет подавить вывод предыдущей команды?
Требуется получить текстовый файл C:root_class.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен Root. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
Какая команда позволяет увидеть дату установки операционной системы на компьютере c IP-адресом 10.169.1.204?
Требуется получить список всех служб, зарегистрированных на локальном компьютере, запуск которых отключен. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
Какая команда позволит увидеть методы, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
Какая команда позволит увидеть свойства и методы, имеющиеся у статического класса System.Environment?
Какая команда позволит увидеть значение свойства MachineName статического класса System.Environment?
Предположим, что мы работаем в оболочке PowerShell интерактивно и в текущем каталоге имеется сценарий script.ps1. Какая команда запустит этот сценарий на выполнение?
Пусть $a=3. Какая из команд при выполнении выдаст сообщение «Значение переменной a равно 3»?
Пусть $a=3. Какая из команд при выполнении выдаст ровно одно сообщение «Значение переменной a равно 3»?
Требуется найти и сохранить в переменной $m суммарный размер файлов с расширением doc, хранящихся в каталоге C:Docs и всех его подкаталогах. Какие команды решают эту задачу?
Какой командлет позволяет установить нужную политику выполнения?
Какую команду нужно выполнить, чтобы запретить запуск сценариев без цифровой подписи?
С помощью какого оператора можно выделить имя файла из первого параметра командной строки?
Требуется узнать, какие методы имеют объекты, возвращаемые командлетом с псевдонимом dir. Какая команда позволяет сделать это?
Какой командой интерпретатора Cmd.exe можно создать файл Dir_Help.txt с описанием команды DIR?
Каким образом из сценария на языке VBScript установить связь с сервером автоматизации Microsoft Excel?
Какая из команд очистит экран консоли?
Имеется сценарий script.vbs. Какое имя будет иметь файл с параметрами WSH для этого сценария?
Какой элемент схемы WS XML позволяет подключить к сценарию код из внешнего файла?
Каким файлом реализована библиотека поддержки сценариев WMI?
С помощью какой команды можно создать новый экземпляр класса Win32_Process (запустить новый процесс) с именем Notepad.exe?
Какой метод или свойство используются для изменения пароля пользователя?
Какая команда принудительно завершит все процессы, имена которых начинаются на букву «F»?
С помощью какого оператора можно завершить работу командного файла?
Требуется найти и сохранить в переменной $m суммарный размер файлов с расширением mp3, хранящихся в каталоге C:Music и всех его подкаталогах. Какие команды решают эту задачу?
Какая команда WMIC позволяет создавать новые экземпляры классов WMI напрямую, без использования псевдонимов?
Какие из перечисленных ниже функций должен выполнять менеджер объектов CIMOM?
Пусть значением переменной %SystemRoot% является строка «C:Windows» (без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:~-3% ?
Какой метод объекта FileSystemObject позволяет удалять файлы?
С помощью какого варианта команды if можно проверить наличие определенной переменной среды?
К какому типу относится класс Win32_Process?
Какая из команд выведет список всех подкаталогов и файлов из корневого каталога диска C:, упорядоченный по времени последнего обращения к ним?
Пусть $a=3. Какая из команд при выполнении выдаст сообщение «Значение переменной a равно 3»?
Каким образом из сценария на языке VBScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows NT?
Требуется сформировать файл doc_info.txt со списком всех файлов с расширением doc, находящихся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
Требуется найти и сохранить в переменной $m суммарный размер файлов с расширением avi, хранящихся в каталоге C:Video и всех его подкаталогах. Какие команды решают эту задачу?
Какое имя имеет сервер сценариев WSH для консольного режима?
С помощью какой команды можно создать новый экземпляр класса Win32_Process (запустить новый процесс) с именем Notepad.exe?
Какие части составляют архитектуру WMI?
Какие форматы вывода поддерживает WMIC по умолчанию?
С помощью какой команды можно получить информацию о названиях доступных политик выполнения?
Какие средства позволяют напрямую обращаться к объектам .NET?
Можно ли написать сценарий WSH на языке Perl?
Какое средство автоматизации предлагает собственную объектную модель?
Пусть текущим каталогом является C:folder1folder2folder3. Каким командами можно переместиться в корневой каталог диска C?
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul && echo 2222 ?
Пусть командный файл состоит из десяти строк, причем в команде из восьмой строки допущена синтаксическая ошибка. Каким образом будет выполнен этот файл.
Какое расширение может иметь файл со сценарием на языке VBScript?
Какой цикл позволяет напрямую перебирать элементы коллекций в языке VBScript?
Какой из объектов WSH позволяет получить доступ к переменным среды?
Какой из объектов WSH позволяет создавать ярлыки для программ и документов?
В каком свойстве хранится полный путь к каталогу, откуда был запущен сценарий?
Пусть D – экземпляр объекта Drive, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.TotalSize/(1024*1024). Чему после этого равно значение переменной n?
С помощью каких методов можно удалить непустую папку?
Пусть objCalc – экземпляр объекта WshScriptExec, соответствующий запущенному дочернему процессу calc.exe (Калькулятор Windows). С помощью какой команды на языке VBScript можно завершить работу данного экземпляра Калькулятора?
Какой объект является корневым в объектной модели Microsoft Excel?
Каким образом из сценария на языке VBScript провести связывание с локальной группой Group1 на рабочей станции Comp1 с операционной системой Windows XP?
В каких случаях в сценарии может отсутствовать элемент <package>?
Какой тег должен присутствовать в сценарии с разметкой XML, чтобы из этого сценария можно было пользоваться константами объекта FileSystemObject без их предварительного объявления в сценарии?
В языке VBScript поддерживается функция InputBox, выводящее диалоговое графическое окно. Можно ли эту функцию вызывать напрямую в JScript-коде?
Файлами какого типа представлены провайдеры WMI?
Каким образом задается путь к объекту WMI, соответствующему службе Messenger, работающей на компьютере \comp1?
Где хранятся записи контроля доступа к пространствам имен WMI?
К какой группе принадлежит классCIM_LogicalFile?
Как можно узнать, доступно ли определенное свойство объекта WMI для изменения с помощью метода Put_()?
Допустим, что метод WMI имеет квалификаторы Implemented и Static со значением True. Что это означает?
С помощью какой стандартной утилиты можно запустить процесс на удаленной машине, используя методы WMI?
Какую утилиту из пакета WMI Tools можно использовать в качестве постоянного потребителя событий WMI?
Какая библиотека отвечает за поддержку объектов-серверов автоматизации, позволяющих из сценария WSH работать с классами и объектами пространства имен WMI?
Каким образом на локальной машине можно подключиться к пространству имен WMI от имени учетной записи, отличной от текущей учетной записи?
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для перезагрузки удаленного компьютера?
Какой класс WMI позволяет узнать дату установки операционной системы?
Пусть в сценарии на языке VBScript присутствует строка Set objWMIService = GetObject(«WinMgmts:RootCIMV2). Каким образом в этом сценарии получить коллекцию служб, запущенных на локальном компьютере и имеющих ручной режим запуска?
С помощью какого метода WMI можно принудительно завершить работу определенного процесса?
Какая команда позволяет завершить сеанс работы в WMIC?
Допустим, что нам необходимо подключиться к подсистеме WMI на удаленной рабочей станции \Comp1. Какой глобальный параметр WMIC следует для этого использовать?
Пусть требуется узнать серийный номер операционной системы на компьютере \Comp1. Какие команды позволят это сделать?
Допустим, что на локальном компьютере служба сервера (Lanmanserver) стартует автоматически при загрузке операционной системы. С помощью какой команды WMIC можно отключить данную службу?
Какое из имен не соответствует шаблону наименования командлетов?
Какая команда позволит увидеть, какому командлету соответствует псевдоним dir?
Каким образом можно вывести краткую справку по командлету Get-Process?
Какая из команд не будет автоматически дополнена до подходящего командлета (Start-Service) после нажатия клавиши <Tab>?
Требуется узнать, какие свойства и методы имеют объекты, возвращаемые командлетом с псевдонимом dir. Какая команда позволяет сделать это?
Какая из команд выведет список всех подкаталогов корневого каталога диска C:, начинающихся на букву «W»?
Требуется вывести в виде списка всю доступную информация о файлах и подкаталогах корневого каталога диска C:. Какие команды решают эту задачу?
Требуется получить текстовый файл C:cimv2.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен RootCIMV2. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
Требуется получить список всех служб, зарегистрированных на локальном компьютере, которые запускаются в автоматическом режиме. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
Какая команда позволит увидеть свойства, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
Какая команда позволит увидеть методы, имеющиеся у статического класса System.Environment?
Какая команда позволит увидеть значение свойства CurrentDirectory статического класса System.Environment?
Какое расширение должны иметь сценарии PowerShell?
Какая политика выполнения устанавливается в PowerShell по умолчанию?
Какую команду нужно выполнить, чтобы разрешить запуск локальных сценариев без цифровой подписи?
Какой метод или свойство позволяют получить коллецию всех пользователей определенной группы?
Какие версии операционной системы Windows поддерживают оболочку PowerShell?
В каком каталоге в Windows XP хранится файл cmd.exe?
Каким образом из сценария на языке VBScript провести связывание с корневым объектом класса Namespace для провайдера службы каталогов Windows Active Directory?
Какая из приведенных ниже строк ADsPath должна использоваться для связывания с локальным пользователем Ivanov на рабочей станции Comp1 с операционной системой Windows XP?
Какой из методов позволяет вывести сообщение в диалоговое окно?
Какая из приведенных ниже строк связывания может использоваться в службе каталогов Windows Active Directory?
Какой режим выполнения будет установлен по умолчанию для сценариев WSH после выполнения команды cscript.exe //H:CScript?
Каким образом можно вывести детальную справочную информацию по командлету Get-Process?
Какой программный идентификатор (ProgID) имеет объект WshShell?
Какой метод используется для записи в базу данных учетных записей информации о новом пользователе?
Какие из указанных ниже элементов входят в схему WS XML?
Каким образом можно с помощью WMIC принудительно завершить все запущенные экземпляры браузера Internet Explorer на локальной машине?
Какие средства позволяют обращаться к объектам COM непосредственно из командной строки?
С помощью какого метода можно имитировать нажатия клавиш в текущем сеансе командной строки?
Какой символ используется для задания имени локального компьютера в пути к объектам WMI?
Какое действие по умолчанию выполнит операционная система, если в Проводнике Windows дважды щелкнуть мышью на файле с расширением ps1?
В каких версиях операционной системы Windows можно пользоваться командными файлами?
Какие средства позволяют напрямую обращаться к объектам WMI?
Какие средства автоматизации имеют встроенную справочную систему?
Пусть в текущем каталоге на диске C: хранятся файлы с расширением vbs. Какими командами можно переместить эти файлы в каталог E:folder1 (с удалением первоначальных файлов)?
Требуется сформировать файл ro _info.txt со списком всех файлов, имеющих атрибут «Только для чтения», которые находятся в папке «C:Мои документы» и всех ее подпапках. Какой командой можно это сделать?
Какое расширение могут иметь командные файлы?
Какой из объектов WSH позволяет протоколировать действия в журнале событий Windows?
Пусть объект WshShell в сценарии на языке VBScript создан следующим образом: Set WshShell=WScript.CreateObject(«WScript.Shell»). Каким образом создать объект-коллекцию WshEnv, содержащую все переменные среды?
Какой программный идентификатор (ProgID) имеет объект FileSystemObject?
Пусть D – экземпляр объекта Drive, соответствующий логическому диску D:. В сценарии выполняется следующая строка (язык VBScript): n=D.FreeSpace/(1024*1024). Чему после этого равно значение переменной n?
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно создать временный текстовый файл со случайным именем (язык VBScript)?
С помощью каких методов можно удалить непустую папку?
Пусть objUser – экземпляр объекта User, соответствующий определенному пользователю. Каким образом изменить пароль этого пользователя на «11111111» (язык JScript)?
В каких случаях в сценарии необходимо использовать элемент <package>?
Какие теги могут использоваться для документирования сценария с разметкой XML?
Можно ли в сценарии с разметкой XML использовать константы, определенные во внешних COM-объектах, обращаясь к ним по имени?
За выполнение каких задач отвечает репозиторий CIM?
Как можно узнать, доступен ли для выполнения определенный метод объекта WMI?
Какая утилита из пакета WMI Tools позволяет создать фильтр событий WMI?
Каким образом из сценария на языке VBScript создать экземпляр объекта SWbemLocator?
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
Какой из приведенных ниже моникеров WMI нужно использовать для подключения к пространству имен CIMV2 на рабочей станции \Comp1 с дополнительными привилегиями на выключение и удаленное выключение компьютера?
Какой класс WMI позволяет принудительно завершить сеанс работы пользователя?
Какие дополнительные привилегии нужно указывать при подключении к подсистеме WMI для перезагрузки локального компьютера?
Какой запрос на языке WQL позволит получить набор всех служб с ручным режимом запуска?
Пусть в сценарии на языке VBScript присутствует строка Set objWMIService = GetObject(«WinMgmts:RootCIMV2). Каким образом в этом сценарии получить коллекцию процессов, запущенных на локальном компьютере и начинающихся на букву «F»?
Пусть коллекция colProcesses содержит экземпляры класса Win32_Process, отобранные по некоторому WQL-запросу. Каким образом принудительно завершить работу всех процессов, соответствующих этим экземплярам (язык VBScript)?
Какой глобальный параметр позволяет сохранить во внешнем XML-файле c:wmic_out.xml историю команд WMIC?
Каким образом можно, не прибегая к псевдонимам WMIC, увидеть информацию о всех свойствах и методах класса Win32_Service?
Какие форматы вывода поддерживает WMIC по умолчанию?
Пусть требуется узнать дату установки операционной системы на компьютере \Comp1. Какая команда позволят это сделать?
Требуется получить упорядоченный по размеру список файлов из корневого каталога диска C:, размер которых больше 1 килобайта. Вверху списка должен быть самый большой файл. Какие команды решают эту задачу?
Требуется вывести в виде списка всю доступную информацию о подкаталогах корневого каталога диска C:. Какие команды решают эту задачу?
Требуется вывести в текстовый файл C:StoppedServices.txt информацию о всех остановленных службах (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
С помощью какой команды можно вывести на принтер с именем «HP2200» список запущенных процессов, упорядоченный по затраченному процессорному времени?
Требуется получить текстовый файл C:default.txt со списком имен всех классов WMI, зарегистрированных на локальном компьютере в пространстве имен RootDefault. Список должен быть упорядочен по алфавиту. Какие команды решают эту задачу?
Какая команда позволяет увидеть дату установки операционной системы на локальном компьютере?
Требуется получить список всех служб, зарегистрированных на локальном компьютере, которые запускаются вручную. Для каждой такой службы должно быть указано ее имя, отображаемое имя и текущее состояние. Какие команды решают эту задачу?
Какая команда позволит увидеть свойства и методы, имеющиеся у главного объекта сервера автоматизации Internet Explorer?
Пусть $a=3. Какая из команд при выполнении выдаст сообщение «Значение переменной a равно 3»?
Пусть $a=3. Какая из команд при выполнении выдаст ровно одно сообщение «Значение переменной a равно 2»?
Какие языки поддерживает WSH по умолчанию (без установки дополнительных модулей)?
Какой объект библиотеки поддержки сценариев WMI позволяет подключиться к пространству имен WMI на локальной или удаленной машине?
Какая из команд выведет список файлов и подкаталогов корневого каталога диска C:?
С помощью какой команды можно сформировать файл C:s.htm с несколькими HTML-таблицами, содержащими краткие сведения о всех службах, зарегистрированных на локальном компьютере (одна таблица для каждой службы)?
Какой класс WMI позволяет выключить удаленный компьютер?
Пусть файл со сценарием на языке JScript имеет имя lib.js. Каким образом подключить этот файл к сценарию с разметкой XML?
Какая команда WMIC используется для получения значений определенных свойств объектов WMI?
С помощью каких символов можно перенаправить выходной поток команды во внешний файл с сохранением прежнего содержимого этого файла?
Что выведется на экран в результате выполнения команды: echo 1111 > c:klop.txt & type c:klop.txt > nul & echo 2222 ?
Какой метод позволяет считать строку из стандартного входного потока?
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно удалить файл C:1.txt (язык VBScript)?
С помощью какого метода объекта FileSystemObject можно папку C:Folder1 переименовать в папку D:Folder2?
С помощью какого метода можно запустить новый независимый процесс в сценарии WSH?
Пусть objCalc – экземпляр объекта WshScriptExec, соответствующий запущенному дочернему процессу. Каким образом внутри сценария можно узнать, продолжает ли работать данный процесс?
С помощью какого метода можно имитировать нажатия клавиш в активном окне приложения Windows?
Какой провайдер ADSI используется для доступа к базе данных локальных учетных записей на рабочей станции Windows?
Каким образом задается путь к объекту WMI, соответствующему процессу calc.exe, запущенному на компьютере \comp1?
Допустим, что используя стандартные средства Windows, определенный пользователь не может перезагрузить локальный компьютер (не имеет соответствующих прав). Сможет ли он перезагрузить компьютер с помощью WMI?
С помощью какой стандартной утилиты можно остановить службу на удаленной машине, используя методы WMI?
Какой класс WMI позволяет узнать дату и время последней загрузки операционной системы?
Каким образом в сценарии получить коллекцию процессов, запущенных на локальном компьютере и начинающихся на букву «F»?
С помощью какой команды можно завершить сеанс работы в WMIC?
Допустим, что на локальном компьютере служба сервера (Lanmanserver) запускается вручную. С помощью какой команды WMIC можно отключить данную службу?
Какая команда позволит увидеть, какому командлету соответствует псевдоним copy?
Какая из команд выведет список всех подкаталогов корневого каталога диска C:?
Какой из объектов WSH позволяет запускать новые процессы?
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на компьютере \Comp1?
Пусть в одном файле с разметкй XML задан сценарии на языках VBScript и JScript. Можно ли из VBScript-кода вызвать функцию, определенную на языке JScript?
Какой объект библиотеки поддержки сценариев WMI позволяет удалять экземпляры классов в определенном пространстве имен WMI?
Какие средства позволяют управлять приложениями-серверами автоматизации?
Какие из средств автоматизации поддерживают работу в интерактивном режиме?
Какой командой интерпретатора Cmd.exe можно создать файл Dir_Help.txt с описанием команды DIR?
Какой из объектов WSH позволяет получить доступ к стандартным потокам ввода/вывода (StdIn/StdOut)?
Каким образом в сценарии на языке JScript можно создать экземпляр объекта FileSystemObject?
Каким образом в сценарии WSH можно сымитировать нажатие клавиши <Enter> в текущем сеансе командной строки?
Допустим, что класс WMI имеет квалификатор SupportsUpdate со значением True. Что это означает?
Каким образом из сценария на языке VBScript можно подключиться к пространству имен CIMV2 на локальном компьютере?
С помощью какой команды можно вывести имена всех процессов, запущенных в системе, и пути к исполняемым файлам, соответствующим этим процессам в формате CSV (значения свойств разделены запятыми)?
Требуется получить список программ, запускаемых автоматически при загрузке операционной системы. Какая команда решают эту задачу?
Какой объект является корневым в объектной модели Microsoft Word?
Пусть $a=3. Какая из команд при выполнении выдаст ровно одно сообщение «Значение переменной a равно 4»?
Допустим, что класс WMI имеет квалификатор SupportsDelete со значением True. Что это означает?
Какая команда позволяет принудительно завершить сеанс работы пользователя на рабочей станции \Comp1?
Какой объект необходимо использовать в языке JScript для перебора элементов коллекций?
Требуется вывести в текстовый файл C:RunningServices.txt информацию о всех службах, работающих на компьютере (имя, отображаемое имя и состояние). Какие команды решают эту задачу?
Какие языки можно использовать для написания сценариев PowerShell?
Какая команда запускает сценарий 1.vbs в текстовом режиме без вывода информации о версии и разработчике WSH?
Какой глобальный параметр позволяет обращаться из оболочки WMIC к пространству имен WMI на удаленном компьютере?
Какой исполняемый файл обеспечивает функциональность менеджера CIMOM?
С помощью какой команды можно вывести на принтер, используемый в системе по умолчанию, список запущенных процессов, упорядоченный по затраченному процессорному времени?
Из каких основных компонентов состоит ядро WMI?
Какой язык поддерживает WSH по умолчанию (без установки дополнительных модулей)?
Имеется сценарий script.vbs. Какое имя будет иметь файл с параметрами WSH для этого сценария?
Какие из приведенных ниже элементов могут содержаться внутри элемента <runtime> в схеме WS XML?
Сколько дочерних классов может иметь тот или иной класс в пространстве имен CIM?
Каким образом из сценария WSH можно подключиться к определенному пространству имен WMI?
С помощью какой команды можно сформировать файл C:s.htm с одной HTML-таблицей, содержащей краткие сведения о всех службах, зарегистрированных на локальном компьютере?
Какой командлет позволяет узнать текущую политику выполнения?
Какой тип команд PowerShell реализуется в виде динамических библиотек?
С помощью какого варианта команды if можно проверить наличие определенного файла?
Пусть текущим каталогом является C:folder1folder2folder3. Какой командой можно удалить файл 123.txt в каталоге folder1?
Пусть FSO – экземпляр объекта FileSystemObject. Каким образом можно создать временный текстовый файл со случайным именем (язык VBScript)?
Пусть значением переменной %SystemRoot% является строка «C:Windows» (без кавычек). Какое значение будет иметь переменная s после выполнения в пакетном файле команды set s=%SystemRoot:C:=D:% ?
Пожалуй, многие знают, что Windows начиная с версии 98 имеет по умолчанию в своем составе Windows Script Host (WSH), который позволяет исполнять скрипты на языках VBScript и JScript, но далеко не каждый хотя бы раз пользовался этой возможностью. В этой статье я приведу примеры полезных сниппетов и скриптов для WSH и попробую убедить вас в том, что вещь это действительно стоящая. Я также расскажу об очень занимательных и полезных возможностях WSH, о которых практически никто не знает, и информацию о которых в интернете найти весьма непросто.
Для начала немного о языках, поддерживающихся WSH. JScript — это, по сути, JavaScript с несколько измененной объектной моделью (например, в нем нет объекта window, как в браузерах, зато добавлен объект WScript, позволяющий взаимодействовать со средой, в которой исполняется скрипт). VBScript базируется на синтаксисе и возможностях Visual Basic 6 (и, возможно, более ранних версий). Оба языка имеют приблизительно одинаковые возможности. Кроме того, можно установить и другие языки для WSH, например, PerlScript, который, как вы уже догадались, базируется на Perl’е. Для этого следует воспользоваться, например, инсталлятором ActiveState Perl:
В Windows по умолчанию расширение файла .js ассоциировано с JScript-скриптами, .vbs — с VBScript. При установке PerlScript появляется ассоциация .pls — с PerlScript-скриптами. Скрипты js и vbs можно закодировать с помощью утилиты от Microsoft screnc.exe, получив на выходе файл с расширением .jse или .vbe, соответственно. К сожалению, такое кодирование защитит лишь от неопытных пользователей — множество раскодировщиков можно найти в Google. Кроме того, при закодировании бывают проблемы с русским текстом.
Еще одной замечательной особенностью WSH является то, что он позволяет комбинировать все установленные в системе скриптовые языки в одном файле с расширением .wsf. Например, VBScript предоставляет функцию, отображающую окошко для ввода текста (InputBox), и она вам очень нужна, но скрипт свой вы пишете на JScript, который такой функцией не располагает. Решается проблема очень просто — создать файл wsf со следующим содержанием:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?xml version=«1.0» encoding=«windows-1251»?> <job id=«MyTestJob»> <script language=«VBScript»> <![CDATA[ Function WSHInputBox(Message, Title, Value) WSHInputBox = InputBox(Message, Title, Value) End Function ]]> </script> <script language=«JScript»> <![CDATA[ //Ваш код на JS var name = WSHInputBox(«Введите ваше имя:», «Запрос», «Вася Пупкин»); WScript.Echo(«Имя: « + name); ]]> </script> </job> |
Таким же образом можно скомбинировать, например, JScript и PerlScript, если PerlScript у вас установлен:
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 |
<?xml version=«1.0» encoding=«windows-1251»?> <job id=«MyTestJob»> <script language=«PerlScript»> <![CDATA[ use strict; our $WScript; use LWP::UserAgent; sub do_request { my $lwp = new LWP::UserAgent; my $response = $lwp->get($_[0]); if($response->is_success) { return $response->headers->as_string; } else { return $response->error_as_HTML; } } ]]> </script> <script language=«JScript»> <![CDATA[ WScript.Echo(do_request(«http://ya.ru»)); ]]> </script> </job> |
Небольшое отступление — расскажу о запуске скриптов для WSH. По двойному клику мышкой они по умолчанию запускаются с помощью программы wscript.exe. В этом случае все вызовы WScript.Echo транслируются в обычные messagebox’ы. Если вы используете скрипт для автоматизации какого-либо процесса, например, сборки какого-либо проекта, и желаете выводить множество сообщений, то следует скрипт запускать с помощью программы cscript.exe, которая обращения к WScript.Echo транслирует в выводы в консоль. Запустить скрипт в консольном варианте можно, создав bat-файл с примерно таким содержимым:
@echo off cscript my_script.wsf [параметры] pause |
Можно также кликнуть на файле скрипта и вызвать меню «Open with command prompt».
Возможно, я кого-то удивлю, если скажу, что из скриптов для WSH можно с легкостью использовать классы .NET! Приведу пример на JScript (js-файл):
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
function vote_form() { //Создаем объект формы и всякие контролы this.form = WScript.CreateObject(«System.Windows.Forms.Form»); this.radioButton1 = WScript.CreateObject(«System.Windows.Forms.RadioButton»); this.radioButton2 = WScript.CreateObject(«System.Windows.Forms.RadioButton»); this.radioButton3 = WScript.CreateObject(«System.Windows.Forms.RadioButton»); this.radioButton4 = WScript.CreateObject(«System.Windows.Forms.RadioButton»); this.button1 = WScript.CreateObject(«System.Windows.Forms.Button»); this.button2 = WScript.CreateObject(«System.Windows.Forms.Button»); this.linkLabel1 = WScript.CreateObject(«System.Windows.Forms.LinkLabel»); //Настраиваем контролы with(this.radioButton1) { Parent = this.form; Checked = true; Left = 12; Top = 12; Width = 110; Height = 17; TabStop = true; Text = «VBScript»; } with(this.radioButton2) { Parent = this.form; Left = 12; Top = 35; Width = 110; Height = 17; TabStop = true; Text = «JScript»; } with(this.radioButton3) { Parent = this.form; Left = 12; Top = 58; Width = 110; Height = 17; TabStop = true; Text = «PerlScript»; } with(this.radioButton4) { Parent = this.form; Left = 12; Top = 81; Width = 110; Height = 17; TabStop = true; Text = «Единая Россия»; } with(this.button1) { Parent = this.form; Left = 12; Top = 112; Width = 85; Height = 23; Text = «Да!»; DialogResult = 1; } with(this.button2) { Parent = this.form; Left = 125; Top = 112; Width = 85; Height = 23; Text = «Идите вы!»; DialogResult = 0; } with(this.linkLabel1) { Parent = this.form; Left = 167; Top = 9; Width = 45; Height = 15; Text = «kaimi.io»; } //настраиваем форму with(this.form) { Width = 222; Height = 125; Text = «Какой язык вам больше по душе?»; AutoSize = true; FormBorderStyle = 5; //FixedToolWindow CancelButton = this.button1; CancelButton = this.button2; } //Отобразить форму и вернуть true, если пользователь нажал на первую кнопку this.show = function() { this.form.ShowDialog(); return this.form.DialogResult == 1; }; //Получить выбранный результат (см. выше, на форме 4 radio button’а) this.result = function() { if(this.radioButton1.Checked) return this.radioButton1.Text; else if(this.radioButton2.Checked) return this.radioButton2.Text; else if(this.radioButton3.Checked) return this.radioButton3.Text; else if(this.radioButton4.Checked) return this.radioButton4.Text; }; }; //Создаем форму var my_form = new vote_form; //Предлагаем пользователю сделать выбор while(true) { if(my_form.show()) { WScript.Echo(«Вы выбрали: « + my_form.result()); break; } else { WScript.Echo(«Ну как же так, надо же выбрать!»); } } |
Выполнив этот скрипт, увидим такую форму:
И все это создано с помощью .NET-классов! Есть, правда, в этом некоторые сложности. Во-первых, я не нашел путей для взаимодействия с делегатами, которые используются при обработке событий в .NET. Во-вторых, не существует способа вызвать через CreateObject конструктор COM-объекта, принимающий параметры (это относится не только к .NET, кстати). В-третьих, по умолчанию в скриптах доступны лишь некоторые .NET-сборки и классы:
System.Collections.Queue
System.Collections.Stack
System.Collections.ArrayList
System.Collections.SortedList
System.Collections.Hashtable
System.IO.StringWriter
System.IO.MemoryStream
System.Text.StringBuilder
System.Random
С другой стороны, опубликовать .NET-сборку, чтобы она стала доступной через COM-интерфейсы (которые и используются в WSH), совсем несложно. Если вышеприведенный скрипт с Windows Forms у вас не заработал (что, скорее всего, так и есть), наберите в консоли команду:
%WINDIR%Microsoft.NETFrameworkv2.0.50727RegAsm.exe System.Windows.Forms.dll /codebase |
либо, если вы пользуетесь 64-битной операционной системой, то
%WINDIR%Microsoft.NETFramework64v2.0.50727RegAsm.exe System.Windows.Forms.dll /codebase |
Эта команда опубликует сборку System.Windows.Forms и она станет доступной через COM-интерфейсы, после чего вы сможете использовать классы из нее в скриптах. К сожалению, не все сборки можно зарегистрировать, а только те, которые имеют аттрибут ComVisible=true (если такой аттрибут у сборки есть, об этом говорится на соответствующих страницах с описанием сборки в MSDN).
Для отмены регистрации сборки выполните приведенную выше команду с ключом /unregister.
Что еще следует знать при использовании .NET-сборок? Часто классы в .NET имеют перегруженные функции с одинаковыми именами и разными типами и количеством параметров. Как вызывать их? Ведь переменные в скриптах практически не типизируются! Все очень просто. Например, возьмем класс System.Random. Он уже зарегистрирован по умолчанию и доступен из WSH. Но он имеет три метода с именем Next. Как вызвать нужный? .NET маппит имена одинаковых методов следующим образом: первый с конца в таблице методов имеет имя Next (в данном случае), следующий — Next_2, далее — Next_3. Где увидеть эту таблицу с правильным порядком функций? Например, в ildasm’е:
Здесь я открыл сборку mscorlib.dll из %WINDIR%Microsoft.NETFramework64v2.0.50727, после чего зашел в неймспейс System и нашел класс Random в нем. Теперь ясно — если мы хотим воспользоваться методом Next, предоставляющим возможность указать минимальное и максимальное значение при генерации рандома, то следует вызвать Next_2 (так как этот метод второй с конца в списке методов Next, смотрите скриншот выше):
var random = WScript.CreateObject(«System.Random»); WScript.Echo(random.Next_2(10, 20)); //выводим рандомное число в диапазоне от 10 до 20 |
Еще одной из интересных возможностей скриптов для WSH является поддержка drag-drop’а. На файлы .js, .vbs, .jse, .vbe, .wsf можно перетаскивать другие файлы, и их имена будут доступны через WScript.Arguments.
Итак, подведем итоги. Чем же примечательно написание скриптов на JScript, VBscript или PerlScript? Почему это лучше и проще bat-файлов или PowerShell’а?
[+] Вы сами выбираете знакомый любимый синтаксис. Предпочитаете JavaScript — пишите на нем, обожаете Visual Basic — тогда VBScript для вас!
[+] Вы можете комбинировать эти языки в одном скрипте, тем самым дополняя возможности одного языка фичами другого.
[+] Вам доступны все стандартные особенности выбранного языка. Поддержка выполнения внешних программ, работа с текстовыми и двоичными файлами, регулярные выражения и многое другое прилагается. Поддержка работы с файлами по маске, с сетевыми путями (samba, например) — тоже.
[+] Вы можете использовать множество зарегистрированных COM-классов.
[+] Вы можете использовать многие COM-Visible .NET-сборки.
[+] Вы можете работать с WMI, так как он доступен через COM.
[+] Имеется полная поддержка Unicode, достаточно сохранить файл как Unicode Little Endian.
Масса очевиднейших плюсов. На WSH можно писать мощнейшие приложения и скрипты, которые облегчат вам жизнь и сделают какие-то полезные задачи автоматически.
Сейчас мне остается лишь привести несколько полезных сниппетов, которые пригодятся вам, если вы решите использовать WSH для написания скриптов, производящих автоматическую сборку проектов/парсинг/работу с файлами и т.д. Для примера я буду использовать свой любимый JScript, потому что он имеет наиболее привычный синтаксис и будет понятен большинству из вас. Кроме того, в JScript удобно перехватывать исключения, которые могут быть выброшены функциями COM-классов и объекта WScript, с помощью try-catch. Можно и самим бросать исключения (это штатная возможность языка JavaScript, и, разумеется, она есть в JScript).
1. Работаем с файловой системой.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var fso = WScript.CreateObject(«Scripting.FileSystemObject»); //Создаем объект, позволяющий работать с файловой системой fso.CopyFile(«xx.txt», «yy.txt»); //копируем xx.txt в yy.txt fso.CopyFile(«C:\Test\*.exe», «C:\test2\»); //копируем все exe-файлы из C:Test в C:test2 fso.DeleteFile(«xx.txt»); //Удаляем xx.txt fso.DeleteFile(«*.*»); //Удаляем все файлы из текущей папки if(!fso.FolderExists(«C:\Temp123»)) fso.CreateFolder(«C:\Temp123»); //Создаем папку, если она не существует //Перечисляем имена всех подпапок на диске C: var folder = fso.GetFolder(«C:\»); if(folder) { var it = new Enumerator(folder.SubFolders); for(; !it.atEnd(); it.moveNext()) WScript.Echo(it.item().path); } |
2. Работаем с переменными окружения.
var shell = WScript.CreateObject(«WScript.Shell»); WScript.Echo(shell.ExpandEnvironmentStrings(«Windows folder: %WINDIR%»)); //Получаем значение переменной окружения //Проверяем, установлена ли переменная окружения var check = «%VS100COMNTOOLS%»; if(shell.ExpandEnvironmentStrings(check) != check) WScript.Echo(«У вас установлена Visual Studio 2010!»); else WScript.Echo(«У вас нет Visual Studio 2010 :(«); |
3. Выполнение внешних программ.
Выполнение программы с ожиданием ее завершения и получением кода возврата:
try { var shell = WScript.CreateObject(«WScript.Shell»); var ret = shell.Run(«calc.exe», 1, true); //Выполняем calc.exe WScript.Echo(«Код возврата: « + ret); } catch(error) { WScript.Echo(«Код ошибки: « + error.number + «n» + error.description); } |
Выполнение внешней программы с перехватом ее вывода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
try { var shell = WScript.CreateObject(«WScript.Shell»); var exec = shell.Exec(«find.exe /?»); //Выполняем find.exe с параметром while(exec.Status == 0) //Ждем окончания выполнения команды WScript.Sleep(100); if(exec.ExitCode != 0) //Если произошла ошибка (обычно все консольные программы в случае ошибки возвращают ненулевое значение, но не всегда) throw new Error(exec.ExitCode, «Cannot execute command!»); var output = «»; if(!exec.StdOut.AtEndOfStream) output = exec.StdOut.ReadAll(); //Перехватываем вывод выполненной программы WScript.Echo(«FIND.EXE help:nn» + output); } catch(error) { WScript.Echo(«Код ошибки: « + error.number + «n» + error.description); } |
Можно также вводить какие-либо данные в программу через Exec.StdIn.
4. Работаем с реестром Windows.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
var shell = WScript.CreateObject(«WScript.Shell»); //Создаем в ветке HKCUSoftware каталог Test123WScriptTest. //Обратите внимание на то, что в конце пути я указал обратный слеш //Последний параметр — тип создаваемого значения — указывать необязательно. shell.RegWrite(«HKCU\Software\Test123\WScriptTest\», 1, «REG_BINARY»); //Создаем в этом каталоге строковое значение shell.RegWrite(«HKCU\Software\Test123\WScriptTest\myvalue», «xyz», «REG_SZ»); //Меняем значение тем же вызовом shell.RegWrite(«HKCU\Software\Test123\WScriptTest\myvalue», «12345», «REG_SZ»); //Читаем записанное значение WScript.Echo(«Записанное значение: « + shell.RegRead(«HKCU\Software\Test123\WScriptTest\myvalue»)); //Так как нельзя удалить каталог в реестре с вложенными каталогами, //удаляем сначала вложенный shell.RegDelete(«HKCU\Software\Test123\WScriptTest\»); //А затем внешний shell.RegDelete(«HKCU\Software\Test123\»); |
5. Работаем с WMI.
Перечисляем все вложенные ключи реестра в заданной ветке:
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 |
//Необходимые константы для доступа к реестру var HKEY_CLASSES_ROOT = 0x80000000; var HKEY_CURRENT_USER = 0x80000001; var HKEY_LOCAL_MACHINE = 0x80000002; var HKEY_USERS = 0x80000003; var HKEY_CURRENT_CONFIG = 0x80000005; var locator = WScript.CreateObject(«WbemScripting.SWbemLocator»); //Подключимся к WMI локального компьютера var server_conn = locator.ConnectServer(null, «root\default»); //Получим доступ к реестру var registry = server_conn.Get(«StdRegProv»); //Получим метод перечисления ключей var method = registry.Methods_.Item(«EnumKey»); //Зададим параметры для вызова метода var input_params = method.InParameters.SpawnInstance_(); input_params.hDefKey = HKEY_CURRENT_USER; //Будем перечислять все ключи в этой ветке реестра input_params.sSubKeyName = «Software\Microsoft\Windows\CurrentVersion\»; //Выполняем метод перечисления ключей var output = registry.ExecMethod_(method.Name, input_params); var subkeys = output.sNames.toArray(); //Выводим полученные значения for(var key in subkeys) WScript.Echo(subkeys[key]); |
Такую вещь на VBScript можно сделать гораздо проще, как ни странно:
const HKEY_CLASSES_ROOT = &H80000000 const HKEY_CURRENT_USER = &H80000001 const HKEY_LOCAL_MACHINE = &H80000002 const HKEY_USERS = &H80000003 const HKEY_CURRENT_CONFIG = &H80000005 ‘Получили доступ к локальному реестру через WMI Set registry = GetObject(«winmgmts:{impersonationLevel=impersonate}!\.rootdefault:StdRegProv») ‘Перечислили имена ключей registry.EnumKey HKEY_CURRENT_USER, «SoftwareMicrosoftWindowsCurrentVersion», key_names ‘Вывели их For i = 0 To UBound(key_names) WScript.Echo key_names(i) Next |
Выполнение запроса WMI (в этом примере — вывод всех аккаунтов на компьютере):
//Подключились к WMI локального компьютера («.») var root = GetObject(«winmgmts:\\.\root\cimv2»); //Выполнили запрос на получение всех локальных аккаунтов на компьютере var items = root.ExecQuery(«SELECT * FROM Win32_Account where LocalAccount = true and SIDType = 1»); //Вывели их имена и описания for(var it = new Enumerator(items); !it.atEnd(); it.moveNext()) WScript.Echo(it.item().Name + » — « + it.item().Description); |
На этом я закончу свое повествование. Думаю, если вы осилили эту статью до конца, вы осознали всю мощь и удобство скриптов для WSH и непременно воспользуетесь этой замечательной функциональностью Windows!
Для дальнейшего изучения могу посоветовать MSDN (там есть множество документации по WSH, и, конечно же, .NET и WMI), и Google (примеров скриптов для WSH там несчетное количество). Удачи в изучении!
Форум программистов Vingrad
Модераторы: ginnie, korob2001 |
Поиск: |
|
Опции темы |
burakov |
|
||
Опытный Профиль Репутация: нет
|
Добрый день… часто в интернете натыкаешься на следующее
попытался найти на http://ppm.activestate.com/ Может ли перл работать со встроенными в WSH Объектами, функциями и всяко разно? ——————— Нотный архив http://libnote.ru скачать ноты бесплатно |
||
|
|||
KSURi |
|
||
Опытный Профиль
Репутация: 5
|
Почти все (а может и все) встроенные механизмы автоматизации Windows доступны через OLE интерфейсы.
——————— Died at Life.pl line 21 |
||
|
|||
burakov |
|
||
Опытный Профиль Репутация: нет
|
Почему то не работает Почему??? Если вставить perlовый sleep 1;
Это сообщение отредактировал(а) burakov — 27.5.2009, 15:47 ——————— Нотный архив http://libnote.ru скачать ноты бесплатно |
||
|
|||
shamber |
|
||
Эксперт Профиль
Репутация: 1
|
burakov, Time::HiRes? |
||
|
|||
burakov |
|
||
Опытный Профиль Репутация: нет
|
Да Time::HiRes помог… и все таки отчего не работает $wsh -> Sleep (800)? Пытается задержать не тот интерпретатор? Спасибо. Это сообщение отредактировал(а) burakov — 27.5.2009, 16:35 ——————— Нотный архив http://libnote.ru скачать ноты бесплатно |
||
|
|||
KSURi |
|
||
Опытный Профиль
Репутация: 5
|
burakov, для таких задач лучше наверное VB[SA] подойдет) ——————— Died at Life.pl line 21 |
||
|
|||
|
Правила форума «Perl: Системное программирование» | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
Компонент Windows Script Host (WSH) является мощным, полезным и гибким средством для выполнения сценариев в среде Windows, но при этом он представляет собой довольно сложный инструмент. Для начала я расскажу о том, что такое WSH и какие механизмы предоставляет данный компонент для выполнения сценариев в Windows. Затем мы рассмотрим различные типы файлов сценариев и способы их запуска. В следующих статьях я расскажу об особенностях формата файлов .wsc и объясню, что такое компоненты сценариев Windows (Windows Script Components (WSC)).
Что такое WSH?
WSH — это компонент Windows, предоставляющий среду для выполнения сценариев на уровне операционной системы (в отличие от некоторых других контекстов, таких как Web-браузер). WSH не является языком, как, например, Perl, или интерпретатором сценариев, как perl.exe, он представляет собой построенный на базе технологии COM сервер, предназначенный для выполнения сценариев в Windows. В операционных системах версии Windows 2000 и более новых версиях WSH является встроенным компонентом. Для более ранних платформ, таких как Windows NT 4.0 и Windows 98, данный компонент может быть загружен с Web-сайта Microsoft и установлен отдельно.
В WSH имеется две стандартные среды исполнения: VBScript и JScript. VBScript обычно используется при разработке сценариев, предназначенных для решения задач системного администрирования, а JScript (реализация JavaScript от Microsoft) чаще применяется в Web-браузерах, поскольку JavaScript поддерживает широкий спектр различных платформ. В зависимости от типа решаемых задач для разработки сценариев на базе WSH пригодны оба языка. Если в системе установлены соответствующие исполнительные механизмы для поддержки других языков, то сценарии, разработанные на этих языках, также могут выполняться через WSH.
В WSH имеется стандартный набор объектов, предоставляющих весьма полезные возможности. Некоторые из этих объектов, например объект WScript и связанные с ним объекты и коллекции, могут существовать только в сценариях, выполняемых через WSH (т.е. метод WScript.Echo не может быть использован в секции сценариев Web-страницы). Однако многие из этих объектов являются универсальными и могут применяться в любых совместимых с COM языках программирования.
Существует два основных типа сценариев WSH: автономные сценарии (т.е. ориентированные на конкретный язык) и файлы .wsf (Windows script file). Файлы автономных сценариев имеют расширения, зависящие от типа языка, например, .vbs (VBScript) или .js (JScript). Что же касается сценариев .wsf, то они являются текстовыми файлами формата XML, нейтральными по отношению к тому или иному языку, и предоставляют ряд возможностей, которых лишены автономные сценарии. В WSH имеется два сервера сценариев, WScript и CScript, которые будут кратко рассмотрены далее. Здесь также имеется технология WSC, ранее известная как серверные сценарии, с помощью которой в сценариях можно создавать свои COM-компоненты.
Серверы сценариев
Сценарии WSH могут выполняться двумя способами: через сервер WScript, поддерживающий графический интерфейс пользователя, и через консольный сервер сценариев CScript. Серверы сценариев реализованы в виде двух исполняемых файлов: wscript.exe и cscript.exe, соответственно. По умолчанию в Windows используется сервер WScript, но эту установку можно изменить. О том, как это делается, мы поговорим чуть ниже.
При запуске сценария через CScript результаты выполнения команд WScript.Echo и сообщения об ошибках периода выполнения будут отображаться в окне консоли (т.е. окне командной строки). Если сценарий запускается через CScript в окне командной строки, то результаты его выполнения и сообщения об ошибках будут отображаться в этом же окне. Если же сценарий запускается через CScript, но из графического интерфейса (например, из проводника Windows или диалогового окна Run («Выполнить»)), то в этом случае создается временное окно командной строки, в котором и будет выполняться сценарий. Выходные данные сценария и сообщения об ошибках будут отображаться в этом временном окне, которое закроется по завершении выполнения сценария.
В отличие от CScript, сервер WScript не использует для выполнения сценариев консольное окно. Поэтому в данном случае результаты выполнения команд Wscript.Echo и сообщения об ошибках будут отображаться в виде стандартных окон сообщений среды Windows.
Оба рассматриваемых сервера сценариев поддерживают ряд параметров командной строки, с помощью которых можно управлять ходом выполнения сценария и задавать сервер, используемый в системе по умолчанию. Когда сценарий запускается через графический интерфейс пользователя или через командную строку, но при этом вводится только имя файла сценария, он будет выполняться через тот сервер сценариев, который задан в системе по умолчанию. Перечень существующих параметров командной строки можно посмотреть, запустив из командной строки одну из следующих команд:
cscript /?
или
wscript /?
При запуске этой команды для WScript справочное сообщение появится не в командной строке, а будет выведено в виде отдельного окна сообщения.
Параметры командной строки приведены в Таблице 1. Обратите внимание, что при указании в командной строке параметров сервера сценариев перед ними необходимо вводить символы двойного прямого слеша (//), что позволяет предотвратить путаницу с ключами командной строки пользовательских сценариев, где используется одинарный символ прямого слеша (/). Например, если требуется установить CScript в качестве используемого по умолчанию сервера сценариев, а также отключить вывод логотипа и сохранить данную конфигурацию для текущего пользователя, можно запустить из командной строки следующую команду:
cscript //h:cscript //nologo //s
Если были сделаны эти установки по умолчанию, то вам уже не потребуется набирать команду cscript при запуске сценариев из командной строки, сообщение об авторских правах Microsoft также выводиться не будет. Обычно я рекомендую выполнять подобную настройку, поскольку большинство сценариев (в том числе многие административные сценарии, предлагаемые Microsoft) требуют использовать CScript в качестве сервера. Также следует отметить, что некоторые из свойств объекта WScript (не путать с сервером сценариев WScript!) существуют только тогда, когда активным сервером сценариев является CScript.
Если при запуске имя сервера сценариев указывается в явном виде (т.е. команда запуска начинается со слова CScript или WScript), то также необходимо указывать и расширение файла сценария. Например, показанная ниже команда
cscript hello
работать не будет, а команда:
cscript hello.vbs
выполнится успешно (при этом, разумеется, предполагается, что файл сценария hello.vbs имеется в текущем каталоге). Если в командной строке набирается только имя сценария без указания сервера сценариев или расширения, то сценарий будет запущен через сервер, используемый в системе по умолчанию.
Для того чтобы определить, какой именно сервер сценариев используется по умолчанию в данный момент в вашей системе, щелкните в проводнике Windows правой кнопкой мыши на имени любого файла сценариев и посмотрите на появившееся контекстное меню. Если в нем жирным шрифтом выделен пункт Open with Command Prompt («Открыть в командной строке»), то система использует по умолчанию CScript. Если же жирным шрифтом выделен пункт Open, тогда используемым по умолчанию является сервер WScript.
Свойства файла сценариев
Свойства файла сценариев доступны через соответствующее диалоговое окно, которое можно вызвать, щелкнув правой кнопкой мыши на имени сценария в проводнике Windows и выбрав из контекстного меню пункт «Свойства» (Properties). Затем следует перейти к закладке Script, которая показана на экране 1. Два параметра, доступные на этой вкладке, соответствуют двум параметрам командной строки: ключам //T и //Logo (или //Nologo). Если выбрать любой из этих параметров и нажать OK, Windows создаст в одном каталоге с файлом сценария файл .wsh с именем, соответствующим имени сценария (т.е. <имя сценария>.wsh). Это обычный текстовый файл, содержащий описание выбранных параметров, пример его содержимого показан на экране 2. Имеющийся в файле .wsh параметр BatchMode не может устанавливаться через графический интерфейс и соответствует параметру командной строки //B. Если его значение равно нулю (установка по умолчанию), то соответствующий сценарий будет запускаться в интерактивном режиме (//I); если же этот параметр установлен в единицу, тогда сценарий запустится в пакетном режиме (что соответствует параметру командной строки //B). Если нужно использовать эту установку, откройте файл .wsh в Блокноте (Notepad) или аналогичном текстовом редакторе и добавьте соответствующую настройку.
Использование файла .wsh — это единственный способ запуска сценария с предустановленными параметрами выполнения. При открытии файла .wsh соответствующий ему файл сценария запускается через сервер WScript. Довольно странно, что параметр командной строки //H не изменяет используемый по умолчанию сервер сценариев для файлов .wsh. Если нужно из графического интерфейса запустить на выполнение файл .wsh через сервер CScript, щелкните правой кнопкой мыши на имени соответствующего файла и выберите из контекстного меню пункт Open with Command Prompt («Открыть в командной строке»). После этого наберите в окне командной строки:
cscript <имя файла .wsh >
В файле .wsh содержится полное описание пути к соответствующему файлу сценария, поэтому если перенести файл .wsh в какое-либо другое место, то через него по-прежнему можно будет вызывать требуемый сценарий. Следует отметить, что создание файлов .wsh не является строго обязательным, поскольку для запуска сценариев на выполнение с необходимыми установками всегда можно воспользоваться соответствующими параметрами командной строки для CScript или WScript.
Расширения файлов WSH
В Таблице 2 приведен перечень стандартных расширений для файлов, используемых WSH. Автономные файлы сценариев имеют расширения .js или .vbs. Файлы, реализованные на языках, соответствующих каким-либо другим средам выполнения сценариев Active X, имеют собственные расширения (например, .pl для Perl и .py для Python). Автономные сценарии используются чаще всего, поскольку являются наиболее простыми для разработки.
Имеющие формат XML файлы .wsf обладают большей гибкостью по сравнению с автономными сценариями, поскольку могут содержать программный код, написанный на нескольких языках. Они имеют также ряд полезных свойств, таких как возможность включения в сценарий кода из других файлов формата XML, содержащих описания объектов сценариев и имеющих расширение .wsc. Сценарии .wsf и компоненты сценариев .wsc будут обсуждаться более подробно в следующих статьях данной серии.
Я надеюсь, что приведенные здесь сведения помогут внести ясность в понимание назначения компонента WSH и расширений для используемых им файлов. В следующей статье мы рассмотрим файлы .wsf и те дополнительные возможности, которые они предоставляют, по сравнению с автономными сценариями.
Таблица 1. Параметры командной строки для CScript и WScript
Рубрика: Программирование / Автоматизация | Дополнительные материалы |
Мой мир Вконтакте Одноклассники Google+ |
АНДРЕЙ БИРЮКОВ
Управляем серверами в реальном времени с помощью WSH-сценариев
Проблемы, связанные с перебоями электроснабжения, уже давно являются головной болью для системных администраторов и специалистов по обслуживанию сети. Системы, предлагаемые компаниями-производителями, не всегда полностью отвечают необходимым требованиям. Сегодня мы расскажем вам, как использовать WSH-сценарии для взаимодействия серверов с системами бесперебойного питания.
Вместо предисловия
На тему использования различных сценариев в задачах системного администрирования уже написана масса всевозможных статей. Особенно это касается Linux/UNIX-операционных систем, обладающих мощными языками сценариев, которые позволяют выполнять большое количество различных административных задач.
А что же Windows? В Windows имеется WSH – Windows Script Host, это основной инструмент для всех административных сценариев, поскольку все административные сценарии выполняются внутри WSH. Сценарии WSH можно писать на языках Jscript .NET, VBScript, Perl, Python и REXX. В данной статье все примеры сценариев приводятся на VBScript.
Документация по WSH предлагает использовать сценарии преимущественно для сбора информации о системе, работы с файловой системой или изменении различных системных настроек. Однако сегодня мы поговорим об использовании сценариев для автоматизированного мониторинга и управления Windows-серверами.
Постановка задачи
Причина, по которой возникла необходимость в написании сценария для автоматизированного управления Windows-серверами, довольно проста, особенно в свете недавних проблем с подачей электропитания. У заказчика имелось несколько серверов Windows 2003, и требовалось организовать бесперебойное электропитание на основе APC UPS. В комплекте с UPS поставлялось программное обеспечение, в состав которого входил агент для взаимодействия с UPS. Один из серверов подключался к источнику бесперебойного питания через COM-порт и на этом сервере был установлен агент, который в случае отключения питания должен был корректно завершить работу сервера. А вот на остальных серверах такой агент без подключения к источнику через СОМ-порт не работал, и следовательно, эти сервера в случае исчезновения питания проработали бы ровно столько, насколько хватило бы заряда аккумулятора, а потом просто отключатся, что, очевидно, совсем не хорошо. Компания-производитель предлагает в качестве решения проблемы приобрести специальное оборудование, проще говоря, СОМ-свитч, однако в силу ряда причин нас подобный вариант не устроил.
Тогда и был написан сценарий на VBScript, который отслеживал в журнале событий появление сообщения об отключении питания на том сервере, где установлен агент, и затем, если по прошествии некоторого периода времени питание не восстанавливалось, начинал корректно выключать сервера, при этом отправляя администратору письмо по электронной почте с уведомлением об отключении.
На примере такого сценария мы и рассмотрим реализацию задачи управления серверами с помощью VBScript. Думаю, примеры программ и методы работы, изложенные в статье, могут быть полезны не только при решении описанной проблемы, но также и для других задач автоматизации системного администрирования в реальном времени. Итак, приступим к реализации. Прежде всего создадим текстовый файл с расширением vbs. Для выполнения сценария достаточно будет лишь запустить созданный vbs-файл.
Читаем журнал событий (Event Log)
Основой разрабатываемого сценария является цикл, который осуществляет поиск в журнале событий вхождений искомого сообщения. Такие сообщения могут быть двух видов: сообщение об отключении питания и о его восстановлении.
Рисунок 1. Журнал событий Event Log, содержащий сообщения от агента источника бесперебойного питания
При отключении питания в журнале событий появляется сообщение следующего вида (см. рис. 2).
Рисунок 2. Сообщение об отключении основного питания
При восстановлении питания агент создаст в журнале событий следующее сообщение (см. рис. 3).
Рисунок 3. Сообщение о восстановлении основного питания
Итак, мы определили, как выглядят сообщения, отправляемые агентом источника бесперебойного питания. В журнале событий нам необходимо искать сообщения с полем Description вида: «UPS On Battery» или «Utility Power Restored», которые будут сигнализировать о потере питания и его восстановлении соответственно.
Реализация поиска данных сообщений в журнале событий может выглядеть, например, вот так:
Листинг 1. Поиск сообщений в журнале событий
Option Explicit
Dim objWMI, objItem ‘ Objects // Объявляем переменные
Dim strComputer
Dim intRecordNum, intRec, colLoggedEvents
Dim strAdmin, strAdmin2, i, intrecordNum2, iteration
‘ WMI Core Section
// Сервер, на котором выполняется сценарий
strComputer=»127.0.0.1″
Set objWMI = GetObject(«winmgmts:» _
& «{impersonationLevel=impersonate}!\» _
& strComputer & «rootcimv2»)
iteration=2 // счетчик итераций
// искомые строки – отключение питания
strAdmin = «UPS On Battery»
// искомые строки – восстановление питания
strAdmin2 = «Utility Power Restored»
Do While 1=1 // цикл бесконечный
// запрос по журналу событий. Раздел Applications
Set colLoggedEvents = objWMI.ExecQuery («Select * from Win32_NTLogEvent Where Logfile = ‘Application'» )
// счетчики записей
intRecordNum=0 // счетчик найденных записей
intRec=0 // счетчик всех записей
intRecordNum2=0
For Each objItem in colLoggedEvents
// ищем первое вхождение записи
// на отключение
If intRecordNum=0 Then
If InStr(1,objItem.message,strAdmin,1) Then intRecordNum = intRec+1
End If
// ищем первое вхождение записи
// на восстановление
If intRecordNum2=0 Then
If InStr(1,objItem.message,strAdmin2,1) Then intRecordNum2 = intRec +1
End If
intRec=intrec+1
// если все нашли, выходим из цикла
If intRecordNum>0 AND intrecordNum2>0 Then Exit For
Next
/ если не нашли записей об отключении,
// то и записи о восстановлении не нужны
If intrecordNum=0 Then intRecordNum2=0
If iteration=0 Then
shutdown
// а здесь будет находиться ссылка на процедуру
// отключения питания на других серверах
End If
If intrecordNum<intrecordNum2 Then
iteration=iteration-1
End If
If intrecordNum2=0 Then
If intRecordNum>0 Then iteration=iteration-1
End If
loop
WScript.Sleep 10000 // Задержка перед следующей итерацией
Следует немного пояснить принцип работы данного сценария, а также смысл некоторых переменных. Одной из ключевых переменных, используемых в работе сценария, является переменная iteration.
Данная переменная определяет количество итераций, а проще говоря, временной интервал, в течение которого наши сервера будут работать от источника бесперебойного питания, ожидая восстановления питания в электрической сети. Это сделано специально, чтобы в случаях кратковременного пропадания питания, на несколько секунд, сервера не начали автоматически отключаться. Этот интервал времени зависит от емкости аккумуляторов вашего источника бесперебойного питания и должен определяться опытным путем.
Итак, в случае, если сценарий находит вхождение сообщения об отключении питания, счетчик iteration уменьшается на единицу, при достижении нулевого значения мы вызываем процедуру shutdown, о которой речь пойдет ниже.
Также следует обратить внимание на последнюю команду сценария, которая определяет период бездействия цикла перед выполнением итерации, в миллисекундах. Указанный в листинге интервал в десять секунд на практике скорее всего окажется крайне мал. Опыт показывает, что интервал должен быть не менее минуты, так как уже в течении одной минуты любой источник бесперебойного питания просто обязан держать напряжение. К тому же поиск по всему журналу событий может отнимать довольно значительные ресурсы системы. Для борьбы с этим можно рекомендовать понизить приоритет процесса со «среднего» на «ниже среднего».
Вообще читателю, искушенному в программировании, алгоритм, приведенный в Листинге 1, может показаться немного странным и нуждающимся в доработке. Такое мнение будет вполне справедливо, так как, составляя алгоритм, я, основываясь на своем опыте, сделал ряд допущений, тем самым существенно его упростив и сделав более удобочитаемым, не в ущерб качеству. Но, возможно, в вашем конкретном случае потребуется что-либо доработать или исправить. Однако продолжим, следующим этапом у нас будет процедура отключения питания.
Отключаем сервера
Итак, перед нами стоит задача программно отключить питание на всех серверах нашей сети. Для этого прежде всего необходимо завести на всех серверах (в случае, если в сети нет домена) или в домене учетную запись, наделенную соответствующими правами.
Я бы очень не рекомендовал использовать для этих целей учетную запись администратора, так как в исходном тексте необходимо указать пароль учетной записи, которая используется для выполнения отключения. Также из соображений безопасности необходимо ограничить доступ к данному сценарию так, чтобы его могли читать/запускать только администраторы. Подобная настройка выходит за рамки данной статьи, однако я думаю, что любой системный администратор без труда справится с этой задачей.
Листинг 2. Процедура отключения питания
Sub Shutdown
On Error Resume Next // если ошибка, переходим к следующему
Dim arrComputers, objLocator
Dim login, password, domain
// Перечисляем имена серверов, которые должны быть выключены
arrComputers = Array(«Computer1″,»Computer2″,»Computer3»)
login=»operator» // учетная запись с правом на shutdown
password=»password» // пароль
domain=»TEST» // домен
For Each strComputer In arrComputers
Set objLocator = CreateObject(«WbemScripting.SWbemLocator»)
Set objWMIService = objLocator.ConnectServer(strComputer, «rootcimv2», login, password, domain)
Set colOperatingSystems = objWMIService.ExecQuery («Select * from Win32_OperatingSystem»)
For Each objOperatingSystem in colOperatingSystems
// непосредственно shutdown
ObjOperatingSystem.Shutdown(1)
Next
// после отключения уведомим администратора
sendmail(strComputer)
Next
WScript.Quit // сценарий завершает свою работу
End Sub
В данной процедуре прежде всего необходимо указать имена серверов и доменную учетную запись обладающей правами на отключение системы. В примере приведена доменная учетная запись, однако, думаю, не составит большого труда внести изменения в текст программы, указав учетные записи для конкретных серверов.
Также в тексте мы встречаем упоминание о процедуре отправки сообщений администратору или службе технической поддержки. В качестве параметра данной процедуре передается имя отключенного сервера.
Рассмотрим процесс отправки уведомлений более подробно.
Отправляем уведомления
На самом деле вполне логично отправить уведомление всем заинтересованным лицам о том, что тот или иной сервер был отключен в связи с потерей питания. В частности, мы сбережем нервную систему системного администратора, который, не зная причины, почему посреди ночи его сервера не пингуются, в ужасе помчится из дома на работу. А так наш сисадмин будет уже заранее знать причину отключения и по крайней мере не будет излишне переживать по поводу возможной потери данных. Также подобное уведомление будет весьма полезно, если сервера находятся на аутсорсинге, либо в компании приходящий администратор.
Конечно, кто-то может возразить, что у агента, который взаимодействует с источником бесперебойного питания, уже есть возможность отправки уведомления администратору об отключении питания. Однако этот агент отправит уведомление об отключении питания, а нас интересует информация об отключении каждого сервера, а не только того, на котором установлен агент.
Итак, обосновав необходимость отправки уведомления, приступим к описанию практической реализации. Современные технологии связи позволяют различные способы уведомления администратора о различных событиях в сети. Например, мне приходилось слышать о системе, которая в случае возникновения внештатной ситуации звонила админу по заранее заданному телефону и проигрывала mp3-файл, содержавший голосовую информацию. Но в такие крайности мы вдаваться не будем – отправим уведомление при помощи электронной почты. В принципе, с помощью того метода, который будет описан далее, наверняка можно отправлять и ICQ-сообщения и даже SMS (хотя из-за различных ограничений, введенных операторами сотовой связи, это сделать будет крайне затруднительно).
Раньше для отправки сообщений посредством сценариев Windows использовался почтовый клиент Outlook. При этом применялся сценарий следующего вида:
Листинг 3. Отправка письма с помощью Outlook
Dim OutlookObject, OutMail
Set OutlookObject = CreateObject(«Outlook.Application»)
Set OutMail = OutlookObject.CreateItem(0)
OutMail.to = «test@test.ru»
OutMail.Subject = «Тема сообщения»
OutMail.Body = «Тело сообщения»
OutMail.Send
Рисунок 4. Запрос на отправку сообщения
К тому же практически любой антивирус заблокирует работу сценария.
По понятным причинам нас это совершенно не устраивает. Но существует другой способ отправки почтовых сообщений сценарием. Данная процедура была найдена мной в MSDN [1].
Листинг 4. Отправка письма
// Получаем в качестве параметра имя сервера
Sub sendmail(server)
// Инициализируем переменные
Dim iMsg
Dim iConf
Dim Flds
Dim str
Const cdoSendUsingPickup = 1
Set iMsg = CreateObject(«CDO.Message»)
Set iConf = CreateObject(«CDO.Configuration»)
// Подготавливаем поля для отправки по SMTP
Set Flds = iConf.Fields
With Flds
.Item(«http://schemas.microsoft.com/cdo/configuration/sendusing») = cdoSendUsingPickup
.Item(«http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory») = «c:inetpubmailrootpickup»
.Update
End With
// Непосредственно текст сообщения
str= «Уважаемый администратор. Сервер » & server & » был отключен «& Now &» в связи с потерей электропитания. «
// заполоняем все поля сообщения
With iMsg
Set .Configuration = iConf
.To = «admin@server.com» // Поле «Кому»
.From = «ups@example.com» // Поле «От кого»
// Тема письма
.Subject = «Отключение питания на сервере » & server
.HTMLBody = str
.Send
End With
// Очищаем переменные
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Sub
Данная процедура отправит письмо по указанному адресу. В результате получателю придет сообщение примерно следующего содержания:
Уважаемый администратор. Сервер MyServer был отключен 01.10.2005 23:03:31 в связи с потерей электропитания.
При необходимости процедуру можно легко подправить, для того чтобы отправлялось сразу несколько писем различным адресатам.
Таким образом, мы решили третью и последнюю задачу, которая ставилась перед нашим сценарием WSH. Исходный код всего сценария прилагается к статье.
Также хотелось бы обратить ваше внимание еще на один щекотливый момент. В случае восстановления питания необходимо снова включить отключенные сервера. Для этого прежде всего надо в BIOS каждого из серверов установить свойство «Wake Up On LAN ON». Я не думаю, что это может создать какие-то трудности в повседневной работе хотя бы потому, что сервера должны быть всегда включены, их не выключают на ночь. Теперь нам необходимо создать какой-либо трафик с помощью нашего сценария. Сделать это можно с помощью фрагмента одной из процедур, описанной ранее. Далее приводится фрагмент Листинга 1, в котором при обнаружении сообщения о восстановлении питания вызывается процедура WakeUp, осуществляющая пинг каждого из серверов (Листинг 6 соответственно). Обратите внимание на использованный в Листинге 6 метод Run. С помощью него можно выполнить любую команду, причем (как показано в Листинге 6) это делается в режиме hide. Если в вашем случае необходимо видимое окно, просто в качестве второго параметра для метода Run укажите единицу. Более подробное описание данного метода и его параметров можно найти в [1].
Листинг 5. Добавление вызова процедуры Wakeup в сценарий Листинга 1
……………..
// Ищем первое вхождение записи на восстановление
If intRecordNum2=0 Then
If InStr(1,objItem.message,strAdmin2,1) Then intRecordNum2 = intRec +1
WakeUp
End If
…………..
Листинг 6. Процедура WakeUp
Sub WakeUp
On Error Resume Next // если ошибка, переходим к следующему
Dim arrComputers
Dim WshShell, str
// Перечисляем имена серверов, которые должны быть выключены
arrComputers = Array(«Computer1″,»Computer2″,»Computer3»)
Set WshShell = CreateObject(«WScript.Shell»)
For Each strComputer In arrComputers
str=»ping «& strComputer
//запускаем в режиме hide
Return = WshShell.Run(str, 0)
Next
End Sub
Заключение
Итак, мы рассмотрели основные аспекты написания сценария для автоматизированного управления серверами Windows при работе с источником бесперебойного питания. Теперь в случае отключения электропитания все наши сервера не окажутся предоставлены сами себе в ожидании полной разрядки аккумулятора, а будут корректно выключены без потери данных.
Очевидно, что алгоритмы и процедуры, изложенные в данной статье, можно с тем же успехом использовать и для решения других задач автоматизации управления серверами и аудита журнала событий с отправкой уведомлений администратору. Например, для наблюдения за корректностью работы тех или иных сервисов и приложений, результатов проведения резервного копирования и других административных действий.
Ссылка:
- http://msdn.microsoft.com – содержит много примеров с исходными текстами сценариев.
Мой мир
Вконтакте
Одноклассники
Google+
Другие имена | Хост сценариев Windows |
---|---|
Разработчики) | Microsoft |
Стабильный выпуск |
5.812 |
Операционная система | Майкрософт Виндоус |
Тип | Техника автоматизации |
В Microsoft Хост сценариев Windows (WSH) (ранее назывался Хост сценариев Windows) — это технология автоматизации для Майкрософт Виндоус операционные системы который обеспечивает возможности написания сценариев, сопоставимые с пакетные файлы, но с более широким набором поддерживаемых функций. Этот инструмент был впервые представлен в Windows 95 после сборки 950a на установочных дисках в качестве дополнительной установки, настраиваемой и устанавливаемой с помощью Панель управления, а затем стандартный компонент Windows 98 (сборка 1111) и последующих версий и Windows NT 4.0 Build 1381 и посредством пакета обновления 4. WSH также является средством автоматизации для Internet Explorer через установленные движки WSH начиная с IE версии 3.0; в это время VBScript стал средством автоматизации для Microsoft Outlook 97.[1] WSH также является необязательной установкой, предоставляемой с движком VBScript и JScript для Windows CE 3.0 и ниже, а также некоторые сторонние движки, включая Rexx и другие формы Basic также доступны.[2][3][4]
Он не зависит от языка, так как может использовать разные Активные сценарии языковые движки. По умолчанию он интерпретирует и запускает простой текст JScript (Файлы .JS и .JSE) и VBScript (Файлы .VBS и .VBE).
Пользователи могут устанавливать разные скриптовые движки чтобы они могли писать сценарии на других языках, например PerlScript. Независимый от языка расширение имени файла Также можно использовать WSF. Преимущество Файл сценария Windows (.WSF) заключается в том, что он позволяет использовать несколько сценариев («заданий»), а также комбинацию языков сценариев в одном файле.
Движки WSH включают различные реализации для Rexx, БАЗОВЫЙ, Perl, Рубин, Tcl, PHP, JavaScript, Delphi, Python, XSLT, и другие языки.
Windows Script Host распространяется и устанавливается по умолчанию на Windows 98 и более поздние версии Windows. Он также устанавливается, если Internet Explorer 5 (или более поздняя версия) установлена. Начиная с Windows 2000, Windows Script Host стал доступен для использования со сценариями входа пользователей.
использование
Windows Script Host может использоваться для различных целей, включая сценарии входа в систему, администрирование и общую автоматизацию. Microsoft описывает это как инструмент администрирования.[5] WSH предоставляет среду для запуска сценариев — он вызывает соответствующий механизм сценариев и предоставляет набор служб и объектов, с которыми сценарий может работать.[5] Эти скрипты можно запускать в GUI Режим (WScript.exe) или в режиме командной строки (CScript.exe) или из COM-объекта (wshom.ocx), предлагая пользователю гибкость для интерактивных или неинтерактивных сценариев.[6] Инструментарий управления Windows также можно использовать сценарии таким образом.
WSH, механизмы и связанные с ними функции также перечислены как объекты, к которым можно получить доступ, создать скрипт и запросить его с помощью VBA и обозреватели объектов Visual Studio, а также для аналогичных инструментов, таких как различные отладчики сценариев, например Отладчик скриптов Microsoft, и редакторы.
WSH реализует объектная модель который предоставляет набор Компонентная объектная модель (COM) интерфейсы.[7] Таким образом, в дополнение к ASP, IIS, Internet Explorer, CScript и WScript, WSH можно использовать для автоматизации и взаимодействия с любым приложением Windows с COM и другими открытыми объектами, такими как использование PerlScript для запроса Microsoft Access различными способами, включая различные ODBC двигатели и SQL, ooRexxScript для создания макросов Rexx в Майкрософт Эксель, Quattro Pro, Microsoft Word, Lotus Notes и тому подобное, XLNT скрипт, чтобы получить переменные среды и распечатать их в новом TextPad документ, VBA функциональность Microsoft Office, Открытый офис (а также Python и другие устанавливаемые языки макросов) и Corel WordPerfect Office отдельно от двигателей WSH, хотя Outlook 97 использует VBScript а не VBA в качестве макроязыка.[8]
Python в виде ActiveState PythonScript может использоваться для автоматизации и запроса данных в SecureCRT, как и в случае с другими языками с установленными движками, например PerlScript, ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT и так далее. Одно заметное исключение: Покрасочная мастерская Pro, который может быть автоматизирован в Python с помощью интерпретатора макросов в самой программе PSP, а не с использованием механизма PythonScript WSH или внешней реализации Python, такой как интерпретаторы Python, поставляемые с Unix программные пакеты для эмуляции и интеграции или другие автономные реализации Python и др.[9][10] в качестве промежуточного и действительно может быть запрограммирован таким образом даже в отсутствие какой-либо сторонней установки Python; То же самое и с программируемым Rexx эмулятором терминала Passport.[11] В SecureCRT эмулятор терминала, SecureFX FTP-клиент и связанные с ним клиентские и серверные программы от Van Dyke в текущих версиях автоматизированы с помощью WSH, поэтому можно использовать любой язык с установленным механизмом; программное обеспечение поставляется с примерами VBScript, JScript и PerlScript.
Начиная с самых последних выпусков и возвращаясь к ряду версий, возможность программирования 4NT / Принять командование в последних реализациях (посредством «@REXX» и аналогичных для Perl, Python, Tcl, Ruby, Lua, VBScript, JScript и т.п. и т. д.) обычно используется движок WSH.[12] В ZOC Эмулятор терминала получает возможность программирования на Rexx с помощью внешнего интерпретатора, один из которых поставляется вместе с программой, а альтернативные интерпретаторы Rexx могут быть указаны в конфигурации программы.[13][14] MKS Toolkit предоставляет PScript, механизм WSH в дополнение к стандартному интерпретатору Perl perl.exe, который поставляется с пакетом.
VBScript, JScript и некоторые сторонние движки имеют возможность создавать и выполнять скрипты в закодированном формате, который предотвращает редактирование с помощью текстового редактора; расширения файлов для этих закодированных сценариев — .vbe, .jse и другие файлы того же типа.
Если не указано иное, любой механизм сценариев WSH может использоваться с различными пакетами программного обеспечения сервера Windows для создания сценариев CGI. Текущие версии стандартных механизмов WSH и все или большинство сторонних механизмов также имеют возможности сокетов; В качестве сценария CGI или иначе PerlScript является выбором многих программистов для этой цели, а VBScript и различные движки на основе Rexx также оцениваются как достаточно мощные с точки зрения возможности подключения и обработки текста, чтобы также быть полезными. Это также относится к доступу к файлам и их обработке — самые ранние механизмы WSH для VBScript и JScript этого не делают, поскольку базовый язык этого не делал,[15] в то время как PerlScript, ooRexxScript и другие имеют это с самого начала.
WinWrap Basic, SaxBasic и другие похожи на Visual Basic для приложений. Эти инструменты используются для добавления возможностей сценариев и макросов в разрабатываемое программное обеспечение и могут быть найдены в более ранних версиях Host Explorer Например. Таким же образом можно использовать и многие другие языки. Другие языки, используемые для написания сценариев программ, включают Rexx, Tcl, Perl, Python, Ruby и другие языки, которые содержат методы для управления объектами в операционной системе, а также в программах электронных таблиц и баз данных.[16] Единственным исключением является то, что Zoc эмулятор терминала управляется Rexx интерпретатор, поставляемый с пакетом, или другой интерпретатор, указанный пользователем; это также относится к эмулятору паспорта.
VBScript — это макроязык в Microsoft Outlook 97, в то время как WordBasic используется для Word до 6, Powerpoint и других инструментов. В Excel до 5.0 используется Visual Basic 5.0. В будущих версиях Office 2000 для всех компонентов используется настоящий Visual Basic для приложений 6.0. Другие компоненты используют Visual Basic для приложений. OpenOffice использует Visual Basic, Python и некоторые другие в качестве языков макросов, и другие могут быть добавлены. LotusScript очень тесно связан с VBA и используется для Lotus Notes и Lotus SmartSuite, который включает Lotus Word Pro (текущий потомок Ami Pro ), Lotus подход, Lotus FastSite, Лотос 1-2-3, & c, а чистый VBA, лицензированный у Microsoft, используется в таких продуктах Corel, как WordPerfect, Парадокс, Quattro Pro и т. д.
К любому языку сценариев, установленному в Windows, можно получить доступ с помощью внешних средств PerlScript, PythonScript, VBScript, а другие доступные механизмы можно использовать для доступа к базам данных (Lotus Notes, Microsoft Access, База данных Oracle, Paradox) и электронные таблицы (Microsoft Excel, Lotus 1-2-3, Quattro Pro) и другие инструменты, такие как текстовые процессоры, эмуляторы терминала, командные оболочки и т. Д. Это можно сделать с помощью WSH, поэтому можно использовать любой язык, если есть установленный движок.
В последних версиях Взять командование В расширенной командной строке и инструментах команда «скрипт», вводимая в командной строке, выдает список установленных в данный момент ядер, по одному в строку и, следовательно, с разделителями CR-LF.[17][18][19]
Примеры
Первый пример очень прост; это показывает некоторые VBScript который использует корневой COM-объект WSH «WScript» для отображения сообщения с кнопкой «ОК». После запуска этого сценария будет вызван механизм CScript или WScript и предоставлена среда выполнения.
Содержание файла hello0.vbs
WScript.Эхо "Привет, мир"WScript.Покидать
Программирование WSH также может использовать JScript язык.
Содержание файла hello1.js
WSH.Эхо("Привет, мир");WSH.Покидать();
Или код можно смешать в одном WSF файл, например VBScript и JScript, или любой другой:
Содержание файла hello2.wsf
<job><сценарий язык =«VBScript»> MsgBox "привет, мир (от В.Б.)"</script><сценарий язык ="JScript"> WSH.echo ("привет мир (от js)");</script></job>
Проблемы безопасности
Приложения и процессы Windows можно автоматизировать с помощью сценария в Windows Script Host. Для использования этой способности могут быть написаны вирусы и вредоносное ПО. Таким образом, некоторые предлагают отключить его из соображений безопасности.[20] В качестве альтернативы антивирусные программы могут предлагать функции для управления .vbs и другими скриптами, которые выполняются в среде WSH.
Начиная с версии 5.6 WSH, скрипты могут быть с цифровой подписью программно с помощью Scripting.Signer объект в самом скрипте при условии действительного свидетельство присутствует в системе. В качестве альтернативы в командной строке можно использовать инструмент кодирования знаков из Platform SDK, который был расширен для поддержки типов файлов WSH.[21]
Используя Политики ограниченного использования программ В Windows XP система может быть сконфигурирована для выполнения только тех сценариев, которые хранятся в надежных расположениях, имеют известный хэш MD5 или подписаны цифровой подписью надежного издателя, что предотвращает выполнение ненадежных сценариев.[22]
Доступные скриптовые движки
Примечание: По определению, все эти скриптовые движки могут использоваться в CGI программирование под Windows с любым количеством программ и настроек, что означает, что файлы исходного кода для сценария, используемого на сервере для целей CGI, могут иметь другие расширения файлов, такие как .cgi и так далее. Вышеупомянутая способность Windows Script Host запускать сценарий с несколькими языками в файлах с расширением .wsh. Расширенный HTML и XML также добавить к дополнительным возможностям при работе со скриптами для использования в сети, как и Активные серверные страницы и так далее. Более того, Windows сценарии оболочки и скрипты, написанные в оболочках с расширенными возможностями, такими как TCC, 4NT и т. д. и оболочки Unix в рамках программного обеспечения для взаимодействия, такого как Набор инструментов MKS в них также могут быть встроены скрипты.
Название двигателя | Реализован язык сценариев | Базовый язык | Расширения файлов | Доступность | Произведено | Положение дел | Дата первого выпуска | Закодированные скрипты | Примечания |
---|---|---|---|---|---|---|---|---|---|
VBScript | Microsoft VBScript | Microsoft Visual Basic | .vbs | Установлен по умолчанию | Microsoft | установка по умолчанию | 1999 | Да, .vbe | Скрипт хоста Windows по умолчанию |
JScript | Microsoft JScript | ECMAScript | .js | Установлен по умолчанию | Microsoft | установка по умолчанию | 1999 | Да, .jse | Хост java-скрипта по умолчанию |
WinWrap Basic | WinWrap Basic | Базовый | .wwb | В основной установке WWB | Полярная инженерия | Стандартный функционал WWB; Использует как .NET, так и COM | 2004 | да | |
PerlScript | Perl | Perl 5 | .pls | с ActiveState Perl | ActiveState | Открытый исходный код | 1999 | Как сообщается, да | |
PScript | Perl | Perl 5, функциональность CGI | .p, .ps | с MKS Toolkit | МКС | Коммерческий | 2001 | ||
XBScript | xBase Scripting Engine | xBase (Машинка для стрижки ) | .xbs, .prg | Машинка для стрижки | с программным обеспечением XBScript | Коммерческий | |||
LotusScript WSH | LotusScript | Microsoft Visual Basic (q.v.) | .nsf | Сторонняя загрузка | Служба поддержки Plus | Бесплатное ПО | 2001 | ||
RexxScript | Rexx | Rexx | .rxs, .rx, .rex | С некоторыми реализациями Rexx | Разные | Бесплатное ПО | 1998 | ||
ooRexxScript | Открыть объект REXX | REXX | .rxs | с Open Object Rexx или бесплатно от третьих лиц | Команда Open Object Rexx | Открытый исходный код | |||
PythonScript | Python | Python | .pys | SourceForge и ActivePython | Проект Pywin32 | Открытый исходный код | |||
TclScript | Tcl / Tk | Tcl / Tk | .tcls | SourceForge | ActiveState или третье лицо | Открытый исходный код | |||
ActivePHPScript | PHP | PHP | .phps | с PHP | Команда PHP | Открытый исходный код | |||
PHPScript | PHP | PHP | .phps | с PHP | Команда PHP | Открытый исходный код | Более ранняя версия ActivePHPScript | ||
RubyScript | Рубин | Рубин | .rbs | с дистрибутивом Ruby | Рубиновая команда | Открытый исходный код | да | ||
XLNTScript | XLNT | DCL | .xcs | с XLNT | Advanced Systems Concepts, Inc. | Коммерческий | 1997 | An OpenVMS DCL -на основе многоцелевого скриптового приложения для Windows | |
LuaScript | Lua | Lua | .lua | с Lua | Организация Lua | Открытый исходный код | |||
Объект REXX двигатель | Объект REXX | Rexx | .rex, .rxs | с IBM Object REXX | IBM | Коммерческий | 2002 | ||
XML Engine | XML разбор | Расширенный HTML, XML | .xml | со многими реализациями XML | Эльфийские данные | де-факто установка по умолчанию | 2000 | Macintosh тоже | |
Двигатель Kixtart WSH | Kixtart | KixTart, MS-DOS, Windows 95. Оболочки Windows NT | .kix | с KixStart | Microsoft Нидерланды | Наборы ресурсов Windows и другие ресурсы | 1996 | Загрузите с сайта Microsoft или другого источника, также известного как KixStart32 | |
NullScript | NullScript | Нулевой язык | .ns | с NullScript | Организация NullScript | Наборы ресурсов Windows и другие ресурсы | 1999 | ||
ForthScript | Четвертый | Четвертый | .fth, другие | Четвертый | DMOZ | Открытый исходный код | |||
Haskell Сценарий | Haskell | Haskell | * .hsk (предварительные), другие | бесплатная загрузка | Открытый исходный код | ||||
Двигатель XSLT WSH | XSLT | XSLT | .xslt | бесплатная загрузка | Открытый исходный код | ||||
Движок CobolScript WSH | Кобол | Кобол | .cbl. .cob, .cb | Fujitsu Cobol 3 — бесплатно для использования в образовательных целях | Бесплатное коммерческое ПО от Fujitsu с бесплатным компилятором для преподавателей и т. Д. | Проприетарный | |||
Движок сценариев Delphi | Delphi | Delphi, вариант Pascal | .dlp, .del,. | В некоторых дистрибутивах или наборах ресурсов Delphi | Коммерческий | 2003 | |||
DMDScript | DMDScript | D, значительное увеличение C | .dmd | DMD Distributions, скачать | Бесплатное ПО | Доступно в Интернете | 2014 | DMD | |
C # скрипт | C # | Microsoft C # .NET | .cs. .c #, другие | Исходный код доступен | Открытый исходный код, ведется активная разработка | неясно | 2013 | ||
Малый скриптовый движок C | C | К (K&R, Ansi) | .c, другие | Различные места, проверьте в Интернете | Бесплатное ПО | 2009 | |||
JavaScript WSH Engine | JavaScript /Ява | Java и варианты | .java, .j, jva, другие | Со многими реализациями JavaScript | Sun / Другие Java-организации | Бесплатное ПО | |||
Возьмите под свой контроль двигатель WSH | 4NT /Взять командование | TCC, текущая версия 4NT п | .btm, .cmd, bat, другие | Проверить программное обеспечение JP | Программное обеспечение JP | Проприетарный | 2015 | Ранняя разработка | |
92Script WSH Engine | ТИ-89 / 92 + / Вояджер 200 TI-Basic | Калькулятор TI-Basic | 0,92 барс | Сайт Project Web / FTP | Различные независимые программисты | Экспериментальный, с открытым исходным кодом | 2014 | «возможный» | Beta Q4 2015 для главного двигателя; графическая функциональность (92Script / Tk) тогда или позже |
48Script WSH Engine | HP-48 Встроенный язык программирования семейства калькуляторов | Язык программирования HP 48, дальний родственник Forth, Basic, Lisp | .48s | Сайт Project Web / FTP | Различные независимые программисты | Экспериментальный | 2015 | Планируется | По состоянию на 30.09.2015. Язык имеет Лисп, Бейсик, Форт и другие влияния. |
Сценарий Фортрана | Фортран | Фортран 77 | .for, .ftn. f77, f90, f95 | Разные | Разные | Экспериментальная проверка концепции, академические упражнения, условно-бесплатная, коммерческая, с открытым исходным кодом. | 2000 | ||
Паскальскрипт | Object Pascal | Паскаль 7 | .pas, .ops, другое | Object Pascal | RemObjects | Бесплатное ПО | 2001 | Может также использоваться напрямую с Delphi | |
Lisp WSH Engine | Лисп | Лисп | .lisp, .lsp | Различные инструменты Lisp | AutoLisp и другие | Бесплатное или условно-бесплатное ПО | |||
БЕСЕН | ECMA-JavaScript | Java и варианты | .bes, .bsn, другие | SourceForge | BESEN Организация | Открытый исходный код | 2011 | ||
Двигатели ECMAScript WSH | Java и варианты | Разные | Разные | Разные | Разные | Экспериментальное, бесплатное, с открытым исходным кодом, условно-бесплатное, проприетарное, коммерческое ПО | 2005 | Существует множество реализаций ECMAScript, но не все имеют движки WSH. | |
Двигатель CFXScript WSH | Встроенный язык программирования Casio CFX-9850 и FX Calculator | Язык программирования калькулятора Casio, портированный на различные операционные системы как CFW | .cfxb | Сайты Project Web / FTP | независимые программисты | Экспериментальный | 2015 | Планируется[23] | По состоянию на 30.09.2015. В языке есть элементы Basic, Forth, Fortran и другие. |
Механизм SharpCalcScript WSH | Графические калькуляторы Sharp на встроенном языке программирования | Sharp S-Basic, портированный на windows как NeusSFortran | .scsb | Сайты Project Web / FTP | независимые программисты | Экспериментальный | 2015 | Планируется | По состоянию на 30.09.2015. Также включает в себя язык S-Basic карманных компьютеров Sharp. |
Были предложения создать движки для других языков, таких как LotusScript, SaxBasic, BasicScript, KiXtart, awk, трепать, csh и другие оболочки Unix, 4NT, cmd.exe (оболочка Windows NT), Windows PowerShell, DCL, C, C ++, Фортран и другие.[24]Язык XLNT[25] основан на DCL и предоставляет очень большое подмножество языка вместе с дополнительными командами и операторами, а программное обеспечение можно использовать тремя способами: механизм WSH (* .xcs), интерпретатор консоли (* .xlnt) и как сервер. и движок CGI на стороне клиента (* .xgi).[26]
Когда сервер реализует CGI, такой как Windows Internet Information Server, порты Apache и другие, могут использоваться все или большинство механизмов; наиболее часто используются VBScript, JScript, PythonScript, PerlScript, ActivePHPScript и ooRexxScript. Программа MKS Toolkit PScript также запускает Perl. Командные оболочки, такие как cmd.exe, 4NT, ksh, и языки сценариев с обработкой строк и, желательно, с функциями сокета, также могут использоваться для сценариев CGI; скомпилированные языки, такие как C ++, Visual Basic и Java, также могут использоваться таким образом. Все интерпретаторы Perl, ooRexx, PHP и более поздние версии VBScript и JScript могут использовать для этого сокеты для TCP / IP и обычно UDP и другие протоколы.
История версий
Версия для Windows | Поставляется с версией WSH | Последняя распространяемая версия |
---|---|---|
Windows 95 | Нет (отдельно распространяемый) | 5.6 |
Windows NT 4.0 | Нет (отдельно распространяемый) | 5.6 |
Windows NT Сервер 4.0 | Нет (отдельно распространяемый) | 5.6 |
Windows CE 3.0 | 1.0 (дополнительная установка на установочный диск) | 2.0 |
Windows 98 | 1.0 | 5.6 |
Второе издание Windows 98 | 1.0 | 5.6 |
Windows 2000 | 2.0 (также называемый WSH 5.1) | 5.7 |
Windows 2000 Сервер | 2.0 (также называемый WSH 5.1) | 5.7 |
Windows 2000 SP3, SP4 и SP5 | 5.6 | 5.7 |
Windows Me | 2.0 (также называемый WSH 5.1) | 5.6 |
Windows XP | 5.6 | 5.7 |
Windows XP SP3 | 5.7 | Непригодный |
Windows Server 2003 | 5.6 | 5.7 |
Виндоус виста | 5.7 | Непригодный |
Windows Server 2008 | 5.7 | Непригодный |
Windows 7 | 5.8 | Непригодный |
Windows Server 2008 R2 | 5.8 | Непригодный |
Windows 8 | 5.8 | Непригодный |
Windows Server 2012 | 5.8 | Непригодный |
Windows 10 | 5.812 | Непригодный |
Windows Server 2016 | 5.812 | Непригодный |
Распространяемая версия WSH версии 5.6 может быть установлена в Windows 95/98 / Me и Windows NT 4.0 / 2000. WSH 5.7 можно загрузить для Windows 2000, Windows XP и Windows Server 2003. Недавно[когда? ]распространяемые версии для старых операционных систем (Windows 9x и Windows NT 4.0) больше не доступны в Центре загрузки Microsoft.
Начиная с Windows XP с пакетом обновления 3, выпуск 5.7 не требуется, так как он включен, и с тех пор новые версии включаются в новые версии Windows.
Смотрите также
- JScript .NET
Рекомендации
- ^ • MSDN, «Windows Scripting Host» и «VBScript»
- ^ MSDN, апрельское издание 2000 г., «Windows Scripting Host»
- ^ Библия VBScript (1999)
- ^ Пакет ресурсов Windows 2000 Server (документация
- ^ а б «Что такое WSH?». msdn.microsoft.com. В архиве из оригинала 7 января 2018 г.. Получено 30 апреля 2018.
- ^ «Основы Windows Script Host». msdn.microsoft.com. В архиве с оригинала 8 августа 2017 г.. Получено 30 апреля 2018.
- ^ «Объектная модель хоста сценария Windows». msdn.microsoft.com. В архиве с оригинала 8 августа 2017 г.. Получено 30 апреля 2018.
- ^ MSDN «VBA»
- ^ Руководство пользователя Paint Shop Pro 8
- ^ Paint Shop Pro 8 справка, «Автоматизация»
- ^ основной файл справки, Паспорт для Windows
- ^ Документация Take Command 18.00 бумажная копия документации и файл справки
- ^ Zoc v 6.0 справка
- ^ Zoc 5.0 печатное руководство
- ^ Документация MSDN
- ^ Библии для Windows Office 97 и 2000 (Wiley)
- ^ Документация Take Command версии 18.00
- ^ Сайт JP Software Take Command-4NT-4Dos-4OS / 2, доска объявлений
- ^ Take Command 18.00 помощь
- ^ «Norman — антивирусное и защитное программное обеспечение для дома и бизнеса». AVG.com. В архиве из оригинала 21 февраля 2006 г.. Получено 30 апреля 2018.
- ^ LLC), Тара Мейер (Aquent. «Обеспечение безопасного опыта». msdn.microsoft.com. В архиве с оригинала 10 ноября 2017 г.. Получено 30 апреля 2018.
- ^ Windows Script Host 5.6 обеспечивает интеграцию с Windows XP, безопасность и новую объектную модель В архиве 2008-02-18 в Wayback Machine
- ^ CasioCalc.com, сообщения от 15.09.2016
- ^ «Архивная копия». В архиве из оригинала 21.03.2015. Получено 2015-03-12.CS1 maint: заархивированная копия как заголовок (связь)
- ^ Файл справки ASCI html
- ^ Сайт ASCI
внешняя ссылка
- VBScript мертв?, isvbscriptdead.com
- Учебник по WSH в Microsoft TechNet — Начать работу с WSH
- WSH дома в MSDN
- Ссылка WSH
- Документация по Windows Script 5.6
- Примечания к выпуску Windows Script 5.7
- Консоль WSH Shell — сторонняя оболочка для WSH и VBScript
Аннотация: Обсуждаются назначение и основные свойства сервера сценариев Windows Script Host (WSH). Описываются консольный и графический режимы работы сценариев WSH. Затрагиваются вопросы выбора языка для написания сценариев WSH
Сервер сценариев WSH. Языки сценариев VBScript и JScript
В двух предыдущих лекциях был рассмотрен язык командных файлов (язык командной оболочки), который в качестве инструмента для автоматизации работы поддерживается во всех версиях Windows. Однако с помощью командного интерпретатора cmd.exe трудно написать какую-либо сложную программу-сценарий (script): отсутствует полноценная интерактивность, нельзя напрямую работать с рабочим столом Windows и системным реестром и т. д.
Для исправления этой ситуации компанией Microsoft был разработан сервер сценариев Windows Script Host (WSH), с помощью которого можно выполнять сценарии, написанные, в принципе, на любом языке (при условии, что для этого языка установлен соответствующий модуль (scripting engine), поддерживающий технологию ActiveX Scripting). В качестве стандартных языков поддерживаются Visual Basic Script Edition (VBScript) и JScript.
Вообще говоря, принцип работы сценариев, поддерживаемых WSH, состоит в использовании объектов ActiveX, поэтому вначале мы очень кратко опишем возможности самой технологии ActiveX компании Microsoft.
Возможности технологии ActiveX
Напомним, что в Windows с самого начала для обеспечения обмена данными между приложениями была разработана технология связывания и внедрения объектов (Object Linking and Embedding, OLE). Вначале технология OLE использовалась для создания составных документов, а затем для решения более общей задачи — предоставления приложениями друг другу собственных функций (служб) и правильного использования этих функций. Технология, позволяющая одному приложению (клиенту автоматизации) вызывать функции другого приложения (сервера автоматизации) была названа OLE Automation. В основе OLE и OLE Automation лежит разработанная Microsoft базовая «компонентная» технология Component Object Model (COM). В общих словах, компонентное программное обеспечение — это способ разработки программ, при котором используются технологии создания программных модулей, подобные технологиям, применяемым для разработки аппаратных средств. Сложные элементные схемы собираются из стандартизированных микросхем, которые имеют четко определенные документированные функции. Разработчик может эффективно пользоваться такими микросхемами, не задумываясь об их внутренней структуре. В программных компонентах, написанных на каком-либо языке программирования, детали реализации используемых алгоритмов также скрыты внутри компонента (объекта), а на поверхности находятся общедоступные интерфейсы, которыми могут пользоваться и другие приложения, написанные на том же или другом языке.
В настоящее время термин OLE используется только по историческим причинам. Вместо него Microsoft с 1996 года использует новый термин — ActiveX, первоначально обозначавший WWW (World Wide Web) компоненты (объекты), созданные на базе технологии COM.
Технология ActiveX длительное время являлась ключевой в продуктах Microsoft. Наиболее полное воплощение она нашла в программах Microsoft Office, Internet Explorer, Internet Information Service (IIS). В эти продукты для управления соответствующими объектами автоматизации были встроены интерпретаторы специальных языков сценариев: VBScript (используется в Microsoft Office, Internet Explorer, IIS) и JScript (используется в Internet Explorer, IIS). Однако непосредственно в операционной системе, вне этих продуктов, выполнять сценарии, написанные на VBScript или JScript, было нельзя.
Сервер сценариев WSH является мощным инструментом, предоставляющим единый интерфейс (объектную модель) для специализированных языков (VBScript, JScript, PerlScript, REXX, TCL, Python и т. п.), которые, в свою очередь, позволяют использовать любые внешние объекты ActiveX. С помощью WSH сценарии могут быть выполнены непосредственно в операционной системе Windows, без встраивания в HTML-страницы.
Назначение и основные свойства WSH
WSH предъявляет минимальные требования к объему оперативной памяти, и является очень удобным инструментом для автоматизации повседневных задач пользователей и администраторов операционной системы Windows. Используя сценарии WSH, можно непосредственно работать с файловой системой компьютера, а также управлять работой других приложений (серверов автоматизации). При этом возможности сценариев ограничены только средствами, которые предоставляют доступные серверы автоматизации.
Перечислим только наиболее очевидные задачи, для автоматизации которых прекрасно подходят сценарии WSH.
- Организация резервного копирования на сетевой сервер файлов с локальной машины, которые отбираются по какому-либо критерию.
- Быстрое изменение конфигурации рабочего стола Windows в зависимости от задач, выполняемых пользователем.
- Автоматический запуск программ Microsoft Office, создание там сложных составных документов, распечатка этих документов и закрытие приложений.
- Управление работой приложений, не являющихся серверами автоматизации, с помощью посылки в эти приложения нажатий клавиш.
- Подключение и отключение сетевых ресурсов (дисков и принтеров).
- Создание сложных сценариев регистрации для пользователей.
- Выполнение задач администрирования локальной сети (например, добавление или удаление пользователей).
Создание и запуск простейших сценариев WSH
Простейший WSH-сценарий, написанный на языке JScript или VBScript — это обычный текстовый файл с расширением js или vbs соответственно, создать его можно в любом текстовом редакторе, способном сохранять документы в формате «Только текст».
Размер сценария может изменяться от одной до тысяч строк, предельный размер ограничивается лишь максимальным размером файла в соответствующей файловой системе.
В качестве первого примера создадим JScript-сценарий, выводящий на экран диалоговое окно с надписью «Привет!». Для этого достаточно c помощью, например, стандартного Блокнота Windows (notepad.exe) создать файл First.js, содержащий всего одну строку:
Тот же самый сценарий на языке VBScript, естественно, отличается синтаксисом и выглядит следующим образом:
Несмотря на то, что для работы этих двух сценариев достаточно всего одной строки, желательно сразу приучить себя к добавлению в начало файла информации о находящемся в нем сценарии: имя файла, используемый язык, краткое описание выполняемых действий. На языке JScript такая информация, оформленная в виде комментариев, может выглядеть следующим образом:
/*******************************************************************/ /* Имя: First.js */ /* Язык: JScript */ /* Описание: Вывод на экран приветствия */ /*******************************************************************/
На языке VBScript то же самое выглядит следующим образом:
'******************************************************************* ' Имя: First.vbs ' Язык: VBScript ' Описание: Вывод на экран приветствия '*******************************************************************
Для запуска сценариев WSH существует несколько способов.
Запуск сценария из командной строки в консольном режиме
Можно выполнить сценарий из командной строки с помощью консольной версии WSH cscript.exe. Например, чтобы запустить сценарий, записанный в файле C:ScriptFirst.js, нужно загрузить командное окно и выполнить в нем команду
cscript C:ScriptFirst.js
В результате выполнения этого сценария в командное окно выведется строка «Привет!» (рис. 4.1)
Запуск сценария из командной строки в графическом режиме
Сценарий можно выполнить из командной строки с помощью (оконной) графической версии WSH wscript.exe. Для нашего примера в этом случае нужно выполнить команду
wscript C:ScriptFirst.js
Тогда в результате выполнения сценария на экране появится нужное нам диалоговое окно (рис. 4.2).
Таким образом, мы видим, что при запуске сценария в консольном режиме, вывод текстовой информации происходит в стандартный выходной поток (на экран), при запуске в графическом режиме — в диалоговое окно.