Как уже отмечалось ранее, WMIC обеспечивает очень гибкий механизм представления выходной информации с помощью таблиц стилей XSL. Рассмотрим стандартные для WMIC форматы вывода.
По умолчанию WMIC поддерживает несколько форматов вывода.
Иногда бывает удобно перенаправить вывод команд WMIC в буфер Windows, например, для последующей вставки результатов выполнения команды в документ Microsoft Word. Для этого нужно в командной строке WMIC глобальному параметру /OUTPUT присвоить значение CLIPBOARD:
/OUTPUT:CLIPBOARD
После этого в буфере будет сохраняться информация, выведенная последней выполненной командой WMIC.
Сохранять в 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> содержит путь к используемому пространству имен <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>.
Результаты выполнения запущенной команды находятся внутри элемента < в контейнере <RESULTS>.
Внутри контейнера < находятся элементы <INSTANCE>, соответствующие экземплярам класса WMI, выбранным в результате выполнения WQL-запроса. Каждый элемент <INSTANCE> содержит элементы <PROPERTY>, соответствующие свойствам экземпляра класса WMI (имя свойства записано в атрибуте NAME, тип свойства — в атрибуте TYPE ). Внутри элемента <PROPERTY> находится элемент <VALUE>, значение которого совпадает со значением соответствующего свойства экземпляра класса WMI.
С помощью стандартных форматов вывода 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 позволяет преобразовывать информацию, возвращаемую командами 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 выполнять повседневные администраторские задачи, связанные с управлением компьютером, получением сведений о состоянии оборудования и операционной системы и т. д.
Для того чтобы принудительно завершить сеанс пользователя, можно воспользоваться методом 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:
/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 обеспечивает очень гибкий механизм представления выходной информации с помощью таблиц стилей XSL. Рассмотрим стандартные для WMIC форматы вывода.
По умолчанию WMIC поддерживает несколько форматов вывода.
Иногда бывает удобно перенаправить вывод команд WMIC в буфер Windows, например, для последующей вставки результатов выполнения команды в документ Microsoft Word. Для этого нужно в командной строке WMIC глобальному параметру /OUTPUT присвоить значение CLIPBOARD:
/OUTPUT:CLIPBOARD
После этого в буфере будет сохраняться информация, выведенная последней выполненной командой WMIC.
Сохранять в 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> содержит путь к используемому пространству имен <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>.
Результаты выполнения запущенной команды находятся внутри элемента < в контейнере <RESULTS>.
Внутри контейнера < находятся элементы <INSTANCE>, соответствующие экземплярам класса WMI, выбранным в результате выполнения WQL-запроса. Каждый элемент <INSTANCE> содержит элементы <PROPERTY>, соответствующие свойствам экземпляра класса WMI (имя свойства записано в атрибуте NAME, тип свойства — в атрибуте TYPE ). Внутри элемента <PROPERTY> находится элемент <VALUE>, значение которого совпадает со значением соответствующего свойства экземпляра класса WMI.
С помощью стандартных форматов вывода 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 позволяет преобразовывать информацию, возвращаемую командами 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 выполнять повседневные администраторские задачи, связанные с управлением компьютером, получением сведений о состоянии оборудования и операционной системы и т. д.
Для того чтобы принудительно завершить сеанс пользователя, можно воспользоваться методом 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:
/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.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.