Вопрос по лекции 7, где рассматривается взаимодействие со сторонними программами, в том числе эмуляция нажатия кнопок клавиатуры WshShell.SendKeys. Вопрос в том что во время автоматизации может потребоваться не нажатие клавиатуры, а нажатие кнопок в сообщениях этих программ. Можно вытащить информацию о объекте (кнопке) скажем с помощью AutoIt Info, или ориентироваться скажем на текст на кнопке..., но как на эту кнопку нажать? (без обхода по клавиатуре) |
Форматы вывода данных WMIC. Типичные команды для администрирования
Вывод в текстовый файл
Для того чтобы перенаправить вывод операторов LIST и GET в текстовый файл, используется параметр /OUTPUT вместе с форматами вывода TEXTTABLE, TEXTTABLEWSYS и TEXTVALUELIST.
Формат TEXTTABLE позволяет получить информацию в табличном виде, где каждая колонка соответствует определенному свойству класса WMI, причем числовые значения форматируются в соответствии с региональными настройками Windows.
Формат TEXTTABLEWSYS также позволяет получить таблицу аналогичной структуры, однако числовые значения здесь выводятся без дополнительного форматирования.
С помощью формата TEXTVALUELIST можно для каждого возвращаемого экземпляра класса WMI получить список пар вида свойство=значение.
Вывод в CSV-файл
Стандартный формат вывода CSV позволяет преобразовывать информацию, возвращаемую командами WMIC, в формат файла с разделителями, при этом в качестве разделителя выступает запятая. Данные файлы потом могут быть легко открыты, например, с помощью программы Microsoft Excel.
Для примера выполним следующую команду:
/OUTPUT:C:\klop.csv PROCESS LIST BRIEF /FORMAT:CSV
В результате на диске C формируется текстовый файл klop.csv, в первой строке которого будут записаны разделенные запятыми названия свойств псевдонима PROCESS, а в остальных строках — значения этих свойств для всех процессов, запущенных в системе:
Node,HandleCount,Name,Priority,ProcessId,ThreadCount,WorkingSetSize, POPOV,0,System Idle Process,0,0,1,20480, POPOV,194,System,8,4,50,131072, POPOV,21,SMSS.EXE,11,364,3,159744, ...
Примеры команд WMIC
В данном разделе приведены примеры команд, которые позволяют из среды WMIC выполнять повседневные администраторские задачи, связанные с управлением компьютером, получением сведений о состоянии оборудования и операционной системы и т. д.
Завершение сеанса пользователя
Для того чтобы принудительно завершить сеанс пользователя, можно воспользоваться методом Win32ShutDown псевдонима OS. Этот метод имеет один обязательный параметр, задающий действие, которое нужно произвести при завершении работы пользователя (это может быть завершение сеанса, перезагрузка или выключение компьютера). Для завершения сеанса пользователя значение этого параметра должно быть равно нулю.
Отметим, что метод Win32ShutDown нельзя вызвать, не указав с помощью оператора WHERE конкретный экземпляр псевдонима OS, причем даже в том случае, когда у псевдонима OS имеется единственный экземпляр, поэтому обязательно нужно применить оператор WHERE, задав в качестве условия, скажем, совпадение значения свойства CSNAME с именем компьютера, на котором вызывается метод. Например:
/NODE:POPOV OS WHERE(CSNAME="POPOV") CALL Win32ShutDown 0
Перезагрузка и выключение компьютера
Для перезагрузки компьютера нужно вызвать метод Win32ShutDown с параметром 2. Например:
/NODE:POPOV OS WHERE(CSNAME="POPOV") CALL Win32ShutDown 2
Выключение компьютера производится путем запуска метода Win32ShutDown с параметром 1. Например:
/NODE:POPOV OS WHERE(CSNAME="POPOV") CALL Win32ShutDown 1
Замечание
Для выполнения метода Win32ShutDown у пользователя должен быть установлен режим использования всех привилегий ( /PRIVILEGES:ENABLE ).
Вывод информации о BIOS
Для получения информации о BIOS (версия, серийный номер, дата выпуска и т. д.) следует вывести свойства псевдонима BIOS:
/OUTPUT:C:\bios.txt BIOS GET /FORMAT:TEXTVALUELIST
В этом примере данные выводятся в текстовый файл bios.txt, содержимое которого представлено в листинге 15.1.
Замечание
Изменять значения свойств у псевдонима BIOS нельзя.
BiosCharacteristics={7,9,10,11,12,15,16,19,20,21,22, 23,24,25,26,27,28,29,30,32,33,34,36,37,40,41} BIOSVersion={"INTEL - 20050804","BIOS Date: 08/04/05 00:31:45 Ver: 08.00.10","BIOS Date: 08/04/05 00:31:45 Ver: 08.00.10"} BuildNumber= Caption=BIOS Date: 08/04/05 00:31:45 Ver: 08.00.10 CodeSet= CurrentLanguage=enUS Description=BIOS Date: 08/04/05 00:31:45 Ver: 08.00.10 IdentificationCode= InstallableLanguages=1 InstallDate= LanguageEdition= ListOfLanguages={"enUS"} Manufacturer=Intel Corp. Name=BIOS Date: 08/04/05 00:31:45 Ver: 08.00.10 OtherTargetOS= PrimaryBIOS=TRUE ReleaseDate=20050804000000.000000+000 SerialNumber= SMBIOSBIOSVersion=BF86510A.86A.0077.P25.0508040031 SMBIOSMajorVersion=2 SMBIOSMinorVersion=3 SMBIOSPresent=TRUE SoftwareElementID=BIOS Date: 08/04/05 00:31:45 Ver: 08.00.10 SoftwareElementState=3 Status=OK TargetOperatingSystem=0 Version=INTEL - 20050804Листинг 15.1. Информация о BIOS
Просмотр параметров загрузки
Информация о параметрах загрузки системы (путь к загрузочным файлам, каталогу для хранения временных файлов, буква последнего диска в системе и т. д.) может быть получена с помощью псевдонима BOOTCONFIG:
wmic:root\cli>BOOTCONFIG GET /VALUE BootDirectory=\WINDOWS Caption=\Device\Harddisk0\Partition1 ConfigurationPath=\WINDOWS Description=\Device\Harddisk0\Partition1 LastDrive=D: Name=BootConfiguration ScratchDirectory=C:\WINDOWS\system32\config\ systemprofile\Local Settings\Temp SettingID= TempDirectory=C:\WINDOWS\system32\config\ systemprofile\Local Settings\Temp
Изменять значения свойств у псевдонима BOOTCONFIG нельзя.