Командная строка и сценарии Windows

Форматы вывода данных WMIC. Типичные команды для администрирования

Разбить на страницы
Показывать лекцию целиком

Форматы вывода данных WMIC. Типичные команды для администрирования

Как уже отмечалось ранее, WMIC обеспечивает очень гибкий механизм представления выходной информации с помощью таблиц стилей XSL. Рассмотрим стандартные для WMIC форматы вывода.

Стандартные форматы вывода

По умолчанию WMIC поддерживает несколько форматов вывода.

Вывод в буфер Windows

Иногда бывает удобно перенаправить вывод команд WMIC в буфер Windows, например, для последующей вставки результатов выполнения команды в документ Microsoft Word. Для этого нужно в командной строке WMIC глобальному параметру /OUTPUT присвоить значение CLIPBOARD:

/OUTPUT:CLIPBOARD

После этого в буфере будет сохраняться информация, выведенная последней выполненной командой WMIC.

Вывод в XML-файл

Сохранять в XML-файле информацию о запускаемых командах WMIC и выводимых ими результатах можно двумя способами: с помощью глобального параметра /RECORD или с помощью формата вывода RAWXML.

Если в XML-файле не нужно будет производить детальный разбор выводимых командами данных, то проще задать выходной файл с помощью параметра /RECORD, например:

/RECORD:C:\out_wmic.xml

После этого каждой вводимой команде WMIC в этом файле будет соответствовать элемент <RECORD>, внутри которого будут записаны элементы <REQUEST> с информацией о команде и <OUTPUT> с результатом выполнения команды в блоке <![CDATA[.

Для того чтобы отменить такой вывод в XML-файл, нужно либо закрыть сеанс WMIC, либо присвоить параметру /RECORD пустое значение: /RECORD:""

Если же требуется полностью структурировать выводимую командами LIST или GET информацию, то можно воспользоваться форматом вывода RAWXML и перенаправить вывод во внешний файл с помощью параметра /OUTPUT, например:

/OUTPUT:C:\out_xml.xml CPU LIST BRIEF /FORMAT:RAWXML

Корневым элементом в файле out_xml.xml будет элемент <COMMAND>, в атрибутах которого записан порядковый номер выполняемой команды в сеансе WMIC ( SEQUENCENUM ), имя компьютера, на котором была запущена команда ( ISSUEDFROM ), время начала выполнения команды ( STARTTIME ) и количество повторов команды ( EVERYCOUNT ).

Элемент <REQUEST> является контейнером, внутри которого находятся элементы, содержащие информацию о запущенной команде и значениях параметров WMIC, которые были установлены во время запуска команды.

Элемент <COMMANDLINE> содержит полный текст запускаемой программы:

<COMMANDLINE> /OUTPUT:C:\out_xml.xml CPU LIST BRIEF /
  FORMAT:RAWXML </COMMANDLINE>

В контейнере <COMMANDLINECOMPONENTS> находятся элементы, полученные в результате разбора командной строки. Элемент <NODELIST> содержит список компьютеров (элементы <NODE> ), на которых запускалась команда.

В элементе <FRIENDLYNAME> хранится имя используемого псевдонима WMIC, в <TARGET> — текст WQL-запроса, который соответствует псевдониму, в <ALIASTARGET> — название класса WMI, к которому происходит обращение:

<FRIENDLYNAME>CPU</FRIENDLYNAME> 
<TARGET>Select * from WIN32_PROCESSOR</TARGET> 
<ALIASTARGET>WIN32_PROCESSOR</ALIASTARGET>

Элемент <NAMESPACE> содержит путь к используемому пространству имен CIM, в элементе <RESULTANTQUERY> записан текст WQL-запроса, который был выполнен при запуске команды (в нашем примере этот запрос построен с учетом модификатора BRIEF ):

<NAMESPACE>ROOT\CIMV2</NAMESPACE> 
<RESULTANTQUERY> SELECT Caption, DeviceID, Manufacturer, 
  MaxClockSpeed, Name, SocketDesignation FROM WIN32_PROCESSOR 
    </RESULTANTQUERY>

В элементе <FORMATS> приведен список XSL-файлов, которые используются для форматирования результатов выполнения команды.

В элементе <PROPERTIES> находятся описания всех свойств класса WMI, которые фигурируют в выполняемом запросе. Каждому такому свойству соответствует элемент <PROPERTY>.

Значения всех глобальных параметров WMIC, каждому из которых соответствует свой XML-элемент, собраны внутри контейнера <CONTEXT>.

Результаты выполнения запущенной команды находятся внутри элемента <CIM> в контейнере <RESULTS>.

Внутри контейнера <CIM> находятся элементы <INSTANCE>, соответствующие экземплярам класса WMI, выбранным в результате выполнения WQL-запроса. Каждый элемент <INSTANCE> содержит элементы <PROPERTY>, соответствующие свойствам экземпляра класса WMI (имя свойства записано в атрибуте NAME, тип свойства — в атрибуте TYPE ). Внутри элемента <PROPERTY> находится элемент <VALUE>, значение которого совпадает со значением соответствующего свойства экземпляра класса WMI.

Вывод в HTML-файл

С помощью стандартных форматов вывода HFORM и HTABLE можно, используя параметр /OUTPUT, сформировать HTML-файлы двух видов с результатами выполнения операторов LIST и GET.

Формат вывода HFORM позволяет представить выходную информацию в виде совокупности HTML-таблиц для каждого из экземпляров класса, выбранного в результате выполнения команды. При этом в первом столбце этих таблиц записывается имя свойства, а во втором — значение этого свойства. Например, выполним команду

/OUTPUT:C:\hf.htm PROCESS LIST BRIEF /FORMAT:HFORM

и откроем полученный файл hf.htm с помощью браузера Internet Explorer (рис. 15.1).

(рис 15.1) Пример выходного HTML-файла, полученного с помощью формата HFORM

С помощью формата HTABLE можно поместить всю выводимую информацию в одну HTML-таблицу, в которой каждая строка соответствует одному экземпляру класса. В заголовках столбцов этой таблицы записываются названия выводимых свойств, а в самих столбцах — значения этих свойств. Например, на рис. 15.2 показан открытый в браузере Internet Explorer файл ht.htm, который был сформирован в результате выполнения следующей команды:

/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE
(рис 15.2) Пример выходного HTML-файла, полученного с помощью формата HTABLE

Кроме этого, таблица, получаемая с помощью формата HTABLE, может быть отсортирована по любому столбцу с помощью параметра sortby (название параметра обязательно должно быть набрано маленькими буквами), в качестве значения которого должно быть указано имя нужного столбца (свойства). Например, для получения таблицы процессов, отсортированной по полю Name, нужно выполнить следующую команду:

/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE:"sortby=Name"

Вывод в текстовый файл

Для того чтобы перенаправить вывод операторов 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

Просмотр параметров загрузки

Информация о параметрах загрузки системы (путь к загрузочным файлам, каталогу для хранения временных файлов, буква последнего диска в системе и т. д.) может быть получена с помощью псевдонима 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 нельзя.

Вывод свойств операционной системы

С помощью псевдонима OS можно просмотреть различные свойства операционной системы, которые могут быть весьма полезны администратору (например, в свойстве LastBootUpTime содержится время последней загрузки системы). Следующая команда выводит все свойства псевдонима OS в текстовый файл os.txt (листинг 15.2):

/OUTPUT:C:\os.txt OS GET /VALUE

Замечание

Свойства CurrentTimeZone, Description, ForegroundApplicationBoost, QuantumLength и QuantumType у псевдонима OS доступны для записи.

BootDevice=\Device\HarddiskVolume1
BuildNumber=2600
BuildType=Uniprocessor Free
Caption=Microsoft Windows XP Professional
CodeSet=1251
CountryCode=7
CreationClassName=Win32_OperatingSystem
CSCreationClassName=Win32_ComputerSystem
CSDVersion=Service Pack 2
CSName=404-POPOV
CurrentTimeZone=240
DataExecutionPrevention_32BitApplications=FALSE
DataExecutionPrevention_Available=FALSE
DataExecutionPrevention_Drivers=FALSE
DataExecutionPrevention_SupportPolicy=2
Debug=FALSE
Description=Microsoft Windows XP Professional
Distributed=FALSE
EncryptionLevel=168
ForegroundApplicationBoost=2
FreePhysicalMemory=66448
FreeSpaceInPagingFiles=327124
FreeVirtualMemory=2056540
InstallDate=20060518120320.000000+240
LargeSystemCache=0
LastBootUpTime=20070919081646.682500+240
LocalDateTime=20070919160053.807000+240
Locale=0419
Manufacturer=Microsoft Corporation
MaxNumberOfProcesses=-1
MaxProcessMemorySize=2097024
Name=Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1
NumberOfLicensedUsers=
NumberOfProcesses=36
NumberOfUsers=2
Organization=SBRF
OSLanguage=1049
OSProductSuite=
OSType=18
OtherTypeDescription=
PlusProductID=
PlusVersionNumber=
Primary=TRUE
ProductType=1
QuantumLength=0
QuantumType=0
RegisteredUser=Evg
SerialNumber=55683-640-7090775-23275
ServicePackMajorVersion=2
ServicePackMinorVersion=0
SizeStoredInPagingFiles=639676
Status=OK
SuiteMask=272
SystemDevice=\Device\HarddiskVolume1
SystemDirectory=C:\WINDOWS\system32
SystemDrive=C:
TotalSwapSpaceSize=
TotalVirtualMemorySize=2097024
TotalVisibleMemorySize=259820
Version=5.1.2600
WindowsDirectory=C:\WINDOWS

Получение информации о процессоре

Получить информацию об установленных процессорах можно с помощью псевдонима CPU. В свойстве DeviceID этого псевдонима хранится идентификатор процессора ( CPU0, CPU1 и т. д.), в свойстве Name — имя процессора, в CurrentClockSpeed — текущая частота и т. д. В листинге 15.3 представлено содержимое файла cpu.txt с информацией об одном процессоре. Файл cpu.txt сформирован с помощью следующей команды:

/OUTPUT:C:\cpu.txt CPU GET /VALUE

Замечание

Изменять значения свойств у псевдонима CPU нельзя.

AddressWidth=32
Architecture=0
Availability=3
Caption=x86 Family 6 Model 8 Stepping 10
ConfigManagerErrorCode=
ConfigManagerUserConfig=
CpuStatus=1
CreationClassName=Win32_Processor
CurrentClockSpeed=897
CurrentVoltage=22
DataWidth=32
Description=x86 Family 6 Model 8 Stepping 10
DeviceID=CPU0
ErrorCleared=
ErrorDescription=
ExtClock=100
Family=15
InstallDate=
L2CacheSize=128
L2CacheSpeed=897
LastErrorCode=
Level=6
LoadPercentage=0
Manufacturer=GenuineIntel
MaxClockSpeed=897
Name=Процессор Intel Celeron
OtherFamilyDescription=
PNPDeviceID=
PowerManagementSupported=FALSE
ProcessorId=0383F9FF0000068A
ProcessorType=3
Revision=2058
Role=CPU
SocketDesignation=Socket 370
Status=OK
StatusInfo=3
Stepping=10
SystemCreationClassName=Win32_ComputerSystem
SystemName=POPOV
UniqueId=
UpgradeMethod=1
Version=Модель 8, Выпуск 10
VoltageCaps=

Получение информации об оперативной памяти

Получить сведения об оперативной памяти можно с помощью трех псевдонимов WMIC: MEMPHYSICAL (информация о физической памяти), MEMCACHE (информация о кэш-памяти) и MEMLOGICAL (информация о логической памяти). Запустим команду MEMLOGICAL GET /VALUE:

wmic:root\cli>MEMLOGICAL GET /VALUE
AvailableVirtualMemory=293476
Caption=Конфигурация логической памяти
Description=Конфигурация логической памяти
Name=LogicalMemoryConfiguration
SettingID=LogicalMemoryConfiguration
TotalPageFileSpace=639676
TotalPhysicalMemory=259820
TotalVirtualMemory=899496

Как мы видим, псевдоним MEMLOGICAL позволяет, в частности, узнать общий объем физической памяти (свойство TotalPhysicalMemory ) и объем виртуальной памяти (свойство TotalVirtualMemory ).

Получение информации о свойствах и состоянии служб

Получить доступ к сведениям о зарегистрированных в системе службах можно с помощью псевдонима SERVICE. Например, для того чтобы сформировать HTML-таблицу, содержащую информацию о состоянии всех зарегистрированных служб на компьютерах \\Server1 и \\Server2, можно выполнить следующую команду:

/NODE:Server1,Server2 /OUTPUT:C:\service.htm 
  SERVICE GET Name, DisplayName, State /FORMAT:HTABLE

Замечание

Изменять значения свойств псевдонима SERVICE нельзя.

Запуск и остановка служб

У псевдонима SERVICE имеются несколько методов, с помощью которых можно, в частности, запускать и останавливать службы на локальном или удаленном компьютере.

Для запуска служб предназначен метод StartService. Например, для того чтобы запустить службы Microsoft SQL Server на сервере \\Server1, нужно выполнить следующую команду:

/NODE:Server1 SERVICE WHERE(Name="MSSQLSERVER") CALL StartService

Для остановки этой же службы используется метод StopService:

/NODE:Server1 SERVICE WHERE(Name="MSSQLSERVER") CALL StopService

Создание и завершение процессов

Для создания новых процессов используется метод Create псевдонима PROCESS, в качестве обязательного параметра которого указывается путь к запускаемому исполняемому файлу. Например, следующая команда откроет стандартный Блокнот Windows:

PROCESS CALL Create Notepad.exe

Отметим, что при таком использовании метода Create нужно следить за параметром ReturnValue, ненулевое значение которого служит индикатором ошибки, произошедшей во время выполнении метода. Если же ReturnValue равно нулю, то значит метод Create выполнился успешно. Завершить процесс можно с помощью метода Terminate:

PROCESS WHERE (Name="Notepad.exe") CALL Terminate

У метода Terminate также есть выходной параметр ReturnValue, который здесь имеет тот же смысл, что и в методе Create.

Страницы:

Форматы вывода данных WMIC. Типичные команды для администрирования

Как уже отмечалось ранее, WMIC обеспечивает очень гибкий механизм представления выходной информации с помощью таблиц стилей XSL. Рассмотрим стандартные для WMIC форматы вывода.

Стандартные форматы вывода

По умолчанию WMIC поддерживает несколько форматов вывода.

Вывод в буфер Windows

Иногда бывает удобно перенаправить вывод команд WMIC в буфер Windows, например, для последующей вставки результатов выполнения команды в документ Microsoft Word. Для этого нужно в командной строке WMIC глобальному параметру /OUTPUT присвоить значение CLIPBOARD:

/OUTPUT:CLIPBOARD

После этого в буфере будет сохраняться информация, выведенная последней выполненной командой WMIC.

Вывод в XML-файл

Сохранять в XML-файле информацию о запускаемых командах WMIC и выводимых ими результатах можно двумя способами: с помощью глобального параметра /RECORD или с помощью формата вывода RAWXML.

Если в XML-файле не нужно будет производить детальный разбор выводимых командами данных, то проще задать выходной файл с помощью параметра /RECORD, например:

/RECORD:C:\out_wmic.xml

После этого каждой вводимой команде WMIC в этом файле будет соответствовать элемент <RECORD>, внутри которого будут записаны элементы <REQUEST> с информацией о команде и <OUTPUT> с результатом выполнения команды в блоке <![CDATA[.

Для того чтобы отменить такой вывод в XML-файл, нужно либо закрыть сеанс WMIC, либо присвоить параметру /RECORD пустое значение: /RECORD:""

Если же требуется полностью структурировать выводимую командами LIST или GET информацию, то можно воспользоваться форматом вывода RAWXML и перенаправить вывод во внешний файл с помощью параметра /OUTPUT, например:

/OUTPUT:C:\out_xml.xml CPU LIST BRIEF /FORMAT:RAWXML

Корневым элементом в файле out_xml.xml будет элемент <COMMAND>, в атрибутах которого записан порядковый номер выполняемой команды в сеансе WMIC ( SEQUENCENUM ), имя компьютера, на котором была запущена команда ( ISSUEDFROM ), время начала выполнения команды ( STARTTIME ) и количество повторов команды ( EVERYCOUNT ).

Элемент <REQUEST> является контейнером, внутри которого находятся элементы, содержащие информацию о запущенной команде и значениях параметров WMIC, которые были установлены во время запуска команды.

Элемент <COMMANDLINE> содержит полный текст запускаемой программы:

<COMMANDLINE> /OUTPUT:C:\out_xml.xml CPU LIST BRIEF /
  FORMAT:RAWXML </COMMANDLINE>

В контейнере <COMMANDLINECOMPONENTS> находятся элементы, полученные в результате разбора командной строки. Элемент <NODELIST> содержит список компьютеров (элементы <NODE> ), на которых запускалась команда.

В элементе <FRIENDLYNAME> хранится имя используемого псевдонима WMIC, в <TARGET> — текст WQL-запроса, который соответствует псевдониму, в <ALIASTARGET> — название класса WMI, к которому происходит обращение:

<FRIENDLYNAME>CPU</FRIENDLYNAME> 
<TARGET>Select * from WIN32_PROCESSOR</TARGET> 
<ALIASTARGET>WIN32_PROCESSOR</ALIASTARGET>

Элемент <NAMESPACE> содержит путь к используемому пространству имен CIM, в элементе <RESULTANTQUERY> записан текст WQL-запроса, который был выполнен при запуске команды (в нашем примере этот запрос построен с учетом модификатора BRIEF ):

<NAMESPACE>ROOT\CIMV2</NAMESPACE> 
<RESULTANTQUERY> SELECT Caption, DeviceID, Manufacturer, 
  MaxClockSpeed, Name, SocketDesignation FROM WIN32_PROCESSOR 
    </RESULTANTQUERY>

В элементе <FORMATS> приведен список XSL-файлов, которые используются для форматирования результатов выполнения команды.

В элементе <PROPERTIES> находятся описания всех свойств класса WMI, которые фигурируют в выполняемом запросе. Каждому такому свойству соответствует элемент <PROPERTY>.

Значения всех глобальных параметров WMIC, каждому из которых соответствует свой XML-элемент, собраны внутри контейнера <CONTEXT>.

Результаты выполнения запущенной команды находятся внутри элемента <CIM> в контейнере <RESULTS>.

Внутри контейнера <CIM> находятся элементы <INSTANCE>, соответствующие экземплярам класса WMI, выбранным в результате выполнения WQL-запроса. Каждый элемент <INSTANCE> содержит элементы <PROPERTY>, соответствующие свойствам экземпляра класса WMI (имя свойства записано в атрибуте NAME, тип свойства — в атрибуте TYPE ). Внутри элемента <PROPERTY> находится элемент <VALUE>, значение которого совпадает со значением соответствующего свойства экземпляра класса WMI.

Вывод в HTML-файл

С помощью стандартных форматов вывода HFORM и HTABLE можно, используя параметр /OUTPUT, сформировать HTML-файлы двух видов с результатами выполнения операторов LIST и GET.

Формат вывода HFORM позволяет представить выходную информацию в виде совокупности HTML-таблиц для каждого из экземпляров класса, выбранного в результате выполнения команды. При этом в первом столбце этих таблиц записывается имя свойства, а во втором — значение этого свойства. Например, выполним команду

/OUTPUT:C:\hf.htm PROCESS LIST BRIEF /FORMAT:HFORM

и откроем полученный файл hf.htm с помощью браузера Internet Explorer (рис. 15.1).

(рис 15.1) Пример выходного HTML-файла, полученного с помощью формата HFORM

С помощью формата HTABLE можно поместить всю выводимую информацию в одну HTML-таблицу, в которой каждая строка соответствует одному экземпляру класса. В заголовках столбцов этой таблицы записываются названия выводимых свойств, а в самих столбцах — значения этих свойств. Например, на рис. 15.2 показан открытый в браузере Internet Explorer файл ht.htm, который был сформирован в результате выполнения следующей команды:

/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE
(рис 15.2) Пример выходного HTML-файла, полученного с помощью формата HTABLE

Кроме этого, таблица, получаемая с помощью формата HTABLE, может быть отсортирована по любому столбцу с помощью параметра sortby (название параметра обязательно должно быть набрано маленькими буквами), в качестве значения которого должно быть указано имя нужного столбца (свойства). Например, для получения таблицы процессов, отсортированной по полю Name, нужно выполнить следующую команду:

/OUTPUT:C:\ht.htm PROCESS LIST BRIEF /FORMAT:HTABLE:"sortby=Name"

Вывод в текстовый файл

Для того чтобы перенаправить вывод операторов 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

Просмотр параметров загрузки

Информация о параметрах загрузки системы (путь к загрузочным файлам, каталогу для хранения временных файлов, буква последнего диска в системе и т. д.) может быть получена с помощью псевдонима 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 нельзя.

Вывод свойств операционной системы

С помощью псевдонима OS можно просмотреть различные свойства операционной системы, которые могут быть весьма полезны администратору (например, в свойстве LastBootUpTime содержится время последней загрузки системы). Следующая команда выводит все свойства псевдонима OS в текстовый файл os.txt (листинг 15.2):

/OUTPUT:C:\os.txt OS GET /VALUE

Замечание

Свойства CurrentTimeZone, Description, ForegroundApplicationBoost, QuantumLength и QuantumType у псевдонима OS доступны для записи.

BootDevice=\Device\HarddiskVolume1
BuildNumber=2600
BuildType=Uniprocessor Free
Caption=Microsoft Windows XP Professional
CodeSet=1251
CountryCode=7
CreationClassName=Win32_OperatingSystem
CSCreationClassName=Win32_ComputerSystem
CSDVersion=Service Pack 2
CSName=404-POPOV
CurrentTimeZone=240
DataExecutionPrevention_32BitApplications=FALSE
DataExecutionPrevention_Available=FALSE
DataExecutionPrevention_Drivers=FALSE
DataExecutionPrevention_SupportPolicy=2
Debug=FALSE
Description=Microsoft Windows XP Professional
Distributed=FALSE
EncryptionLevel=168
ForegroundApplicationBoost=2
FreePhysicalMemory=66448
FreeSpaceInPagingFiles=327124
FreeVirtualMemory=2056540
InstallDate=20060518120320.000000+240
LargeSystemCache=0
LastBootUpTime=20070919081646.682500+240
LocalDateTime=20070919160053.807000+240
Locale=0419
Manufacturer=Microsoft Corporation
MaxNumberOfProcesses=-1
MaxProcessMemorySize=2097024
Name=Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1
NumberOfLicensedUsers=
NumberOfProcesses=36
NumberOfUsers=2
Organization=SBRF
OSLanguage=1049
OSProductSuite=
OSType=18
OtherTypeDescription=
PlusProductID=
PlusVersionNumber=
Primary=TRUE
ProductType=1
QuantumLength=0
QuantumType=0
RegisteredUser=Evg
SerialNumber=55683-640-7090775-23275
ServicePackMajorVersion=2
ServicePackMinorVersion=0
SizeStoredInPagingFiles=639676
Status=OK
SuiteMask=272
SystemDevice=\Device\HarddiskVolume1
SystemDirectory=C:\WINDOWS\system32
SystemDrive=C:
TotalSwapSpaceSize=
TotalVirtualMemorySize=2097024
TotalVisibleMemorySize=259820
Version=5.1.2600
WindowsDirectory=C:\WINDOWS

Получение информации о процессоре

Получить информацию об установленных процессорах можно с помощью псевдонима CPU. В свойстве DeviceID этого псевдонима хранится идентификатор процессора ( CPU0, CPU1 и т. д.), в свойстве Name — имя процессора, в CurrentClockSpeed — текущая частота и т. д. В листинге 15.3 представлено содержимое файла cpu.txt с информацией об одном процессоре. Файл cpu.txt сформирован с помощью следующей команды:

/OUTPUT:C:\cpu.txt CPU GET /VALUE

Замечание

Изменять значения свойств у псевдонима CPU нельзя.

AddressWidth=32
Architecture=0
Availability=3
Caption=x86 Family 6 Model 8 Stepping 10
ConfigManagerErrorCode=
ConfigManagerUserConfig=
CpuStatus=1
CreationClassName=Win32_Processor
CurrentClockSpeed=897
CurrentVoltage=22
DataWidth=32
Description=x86 Family 6 Model 8 Stepping 10
DeviceID=CPU0
ErrorCleared=
ErrorDescription=
ExtClock=100
Family=15
InstallDate=
L2CacheSize=128
L2CacheSpeed=897
LastErrorCode=
Level=6
LoadPercentage=0
Manufacturer=GenuineIntel
MaxClockSpeed=897
Name=Процессор Intel Celeron
OtherFamilyDescription=
PNPDeviceID=
PowerManagementSupported=FALSE
ProcessorId=0383F9FF0000068A
ProcessorType=3
Revision=2058
Role=CPU
SocketDesignation=Socket 370
Status=OK
StatusInfo=3
Stepping=10
SystemCreationClassName=Win32_ComputerSystem
SystemName=POPOV
UniqueId=
UpgradeMethod=1
Version=Модель 8, Выпуск 10
VoltageCaps=

Получение информации об оперативной памяти

Получить сведения об оперативной памяти можно с помощью трех псевдонимов WMIC: MEMPHYSICAL (информация о физической памяти), MEMCACHE (информация о кэш-памяти) и MEMLOGICAL (информация о логической памяти). Запустим команду MEMLOGICAL GET /VALUE:

wmic:root\cli>MEMLOGICAL GET /VALUE
AvailableVirtualMemory=293476
Caption=Конфигурация логической памяти
Description=Конфигурация логической памяти
Name=LogicalMemoryConfiguration
SettingID=LogicalMemoryConfiguration
TotalPageFileSpace=639676
TotalPhysicalMemory=259820
TotalVirtualMemory=899496

Как мы видим, псевдоним MEMLOGICAL позволяет, в частности, узнать общий объем физической памяти (свойство TotalPhysicalMemory ) и объем виртуальной памяти (свойство TotalVirtualMemory ).

Получение информации о свойствах и состоянии служб

Получить доступ к сведениям о зарегистрированных в системе службах можно с помощью псевдонима SERVICE. Например, для того чтобы сформировать HTML-таблицу, содержащую информацию о состоянии всех зарегистрированных служб на компьютерах \\Server1 и \\Server2, можно выполнить следующую команду:

/NODE:Server1,Server2 /OUTPUT:C:\service.htm 
  SERVICE GET Name, DisplayName, State /FORMAT:HTABLE

Замечание

Изменять значения свойств псевдонима SERVICE нельзя.

Запуск и остановка служб

У псевдонима SERVICE имеются несколько методов, с помощью которых можно, в частности, запускать и останавливать службы на локальном или удаленном компьютере.

Для запуска служб предназначен метод StartService. Например, для того чтобы запустить службы Microsoft SQL Server на сервере \\Server1, нужно выполнить следующую команду:

/NODE:Server1 SERVICE WHERE(Name="MSSQLSERVER") CALL StartService

Для остановки этой же службы используется метод StopService:

/NODE:Server1 SERVICE WHERE(Name="MSSQLSERVER") CALL StopService

Создание и завершение процессов

Для создания новых процессов используется метод Create псевдонима PROCESS, в качестве обязательного параметра которого указывается путь к запускаемому исполняемому файлу. Например, следующая команда откроет стандартный Блокнот Windows:

PROCESS CALL Create Notepad.exe

Отметим, что при таком использовании метода Create нужно следить за параметром ReturnValue, ненулевое значение которого служит индикатором ошибки, произошедшей во время выполнении метода. Если же ReturnValue равно нулю, то значит метод Create выполнился успешно. Завершить процесс можно с помощью метода Terminate:

PROCESS WHERE (Name="Notepad.exe") CALL Terminate

У метода Terminate также есть выходной параметр ReturnValue, который здесь имеет тот же смысл, что и в методе Create.

Вернуться к учебному плану