Управление журналом инвентаризации программного обеспечения

В этом документе описывается управление ведением журнала инвентаризации программного обеспечения, функция, которая помогает администраторам центра обработки данных легко регистрировать данные по управлению ресурсами программного обеспечения Майкрософт для их развертываний с течением времени. В этом документе описываются принципы управления ведением журнала инвентаризации программного обеспечения. Прежде чем использовать ведение журнала инвентаризации программного обеспечения с Windows Server 2012 R2, убедитесь, что Обновл. Windows базы знаний 3000850 и базы знаний 3060681 установлены в каждой системе, необходимой для инвентаризации. Для Windows Server 2016 не требуются Обновл. Windows. Эта функция выполняется локально на каждом сервере, подлежащем инвентаризации. Сбор данных с удаленных серверов не выполняется.

Функцию инвентаризации программного обеспечения можно также добавить в две версии Windows Server, предшествующие Windows Server 2012 R2. Для добавления функции инвентаризации программного обеспечения в Windows Server 2012 и Windows Server 2008 R2 SP1 можно установить следующие обновления:

  • Windows Server 2012 (выпуски Standard или Datacenter)

Примечание.

Перед применением пакета обновления убедитесь, что установлен WMF 4.0 .

  • Пакет обновления WMF 4.0 для Windows Server 2012: KB 3119938

  • Windows Server 2008 R2 с пакетом обновления 1

Примечание.

Перед применением пакета обновления убедитесь, что установлен WMF 4.0 .

Существует два основных способа проведения инвентаризации с помощью этой функции.

  1. Запуск функции ведения журнала инвентаризации программного обеспечения (SIL) для сбора данных из источников данных SIL и пересылки полезных данных по сети в указанное целевое расположение (URI) каждый час.

  2. Запрос данных SIL вручную с помощью PowerShell или WMI с любым интервалом.

Запуск ведения журнала SIL предусматривает некоторые усилия по планированию и прогнозу, однако имеет значительные преимущества по сравнению с запросом данных вручную. Использование ведения журнала SIL обеспечивает следующие три основные преимущества для администраторов центров обработки данных.

  • Данные текущего журнала можно собирать в динамике по времени, что обеспечивает создание гибких и комплексных отчетов из одного источника.

  • Можно решить проблемы обнаружения компьютеров, типичные для многих средств инвентаризации.

  • Можно преодолеть проблемы границы доверия и необходимости проверки привилегий пользователя, типичные для многих средств инвентаризации, поддерживая нужный уровень безопасности, поскольку данные шифруются по протоколу HTTPS с использованием SSL.

Функция ведения журнала инвентаризации программного обеспечения устанавливается по умолчанию, однако ведение журнала по умолчанию не запускаются. Все настройки ведения журнала инвентаризации программного обеспечения выполняются с помощью командлетов PowerShell. Существует всего несколько параметров конфигурации для ведения журнала инвентаризации ПО. В этом документе описываются эти параметры и их назначение, а также командлеты, используемые для сбора данных (если используется второй из указанных выше методов).

В этом документе

Параметры конфигурации, описываемые в данном документе, включают в себя следующее:

Примечание.

В этом разделе приводятся примеры командлетов Windows PowerShell, которые можно использовать для автоматизации некоторых описанных процедур. Дополнительные сведения см. в разделе Использование командлетов.

Запуск и остановка ведения журнала инвентаризации программного обеспечения

Ежедневное ведение журнала инвентаризации программного обеспечения и переадресация по сети должны быть включены на компьютере под управлением Windows Server 2012 R2 для регистрации инвентаризации программного обеспечения.

Примечание.

Для получения информации о службе SIL, включая сведения о том, работает или приостановлена служба, можно использовать командлет PowerShell Get-SilLogging.

Запуск ведения журнала инвентаризации программного обеспечения

  1. Выполните вход на сервер с помощью учетной записи с правами локального администратора.

  2. Откройте PowerShell от имени администратора.

  3. В командной строке PowerShell введите команду Start-SilLogging.

Примечание.

Можно задать целевой объект без указания отпечатка сертификата, но в этом случае пересылка завершится ошибкой и данные будут храниться локально максимум 30 дней (значение по умолчанию), после чего они удаляются. После установки действительного хэша сертификата для целевого объекта (и соответствующего действительного сертификата в хранилище LocalMachine/Personal) локально хранящиеся данные будут пересылаться в целевой объект, пока целевой объект настроен на прием этих данных с помощью этого сертификата (дополнительные сведения см. в разделе Software Inventory Logging Aggregator ).

Остановка ведения журнала инвентаризации программного обеспечения

  1. Выполните вход на сервер с помощью учетной записи с правами локального администратора.

  2. Откройте PowerShell от имени администратора.

  3. В командной строке PowerShell введите команду Stop-SilLogging.

Настройка инвентаризации программного обеспечения

Процесс настройки инвентаризации программного обеспечения для пересылки данных на сервер агрегирования с течением времени состоит из трех шагов.

  1. Используйте Set-SilLogging –TargetUri , чтобы указать веб-адрес сервера агрегирования (должен начинаться с "https://").

  2. Воспользуйтесь Set-SilLogging –CertificateThumbprint, указав хэш отпечатка действительного сертификата SSL, который будет использоваться для проверки подлинности при передаче данных на сервер агрегирования (сервер агрегирования должен быть настроен для приема хэша).

  3. Установите действительный сертификат SSL (для вашей сети) в Local Machine/Personal Store (или /LocalMachine/MY) локального сервера, данные с которого будут пересылаться.

Эти действия лучше всего выполнить до использования Start-SilLogging. Если вы хотите использовать их после применения Start-SilLogging, необходимо остановить и снова запустить SIL. Также можно воспользоваться командлетом Publish-SilData Cmdlet, чтобы гарантировать, что сервер агрегирования имеет полный набор данных для этого сервера.

Полное руководство по настройке платформы SIL в целом см. в разделе Software Inventory Logging Aggregator. В частности, если Publish-SilData выдает ошибку или ведение журнала SIL завершается неудачей по другой причине, см. раздел по устранению неполадок.

Ведение журнала инвентаризации программного обеспечения в динамике

Если ведение журнала инвентаризации программного обеспечения было запущено администратором, начнется почасовой сбор и пересылка данных на сервер агрегирования (целевой URI). Первый пересылаемый пакет будет включать полный набор данных, получаемых и выводимых командой Get-SilData на консоли на момент времени. После этого в каждом интервале служба SIL будет выполнять проверку данных и пересылать только небольшое идентифицирующее подтверждение на целевой сервер агрегирования, если с момента последней сборки не было изменений в данных. В случае изменения значения служба SIL снова отправит полный набор данных.

Внимание

Если в любом интервале целевой URI недоступен или передача данных по сети завершается неудачно по любой причине, собранные данные будут храниться локально до 30 дней (значение по умолчанию), после чего они будут удалены. При следующей успешной пересылке данных на целевой сервер агрегирования все данные, хранящиеся локально, будут перенаправлены и данные, помещенные в локальный кэш, будут удалены.

Отображение данных ведения журнала инвентаризации программного обеспечения

Помимо командлетов PowerShell, описанных в предыдущем разделе, для сбора данных SIL может быть использовано шесть дополнительных командлетов.

  • Get-SilComputer: отображает значения в момент времени для данных, связанных с конкретным сервером и операционной системой, а также полное доменное имя или имя узла физического узла (при наличии).

  • Get-SilComputerIdentity (KB 3000850): отображает идентификаторы, используемые SIL для отдельных серверов.

  • Get-SilData: отображает коллекцию всех данных SIL в момент времени.

  • Get-SilSoftware: отображает идентифицирующие данные для всего программного обеспечения, установленного на компьютере, в момент времени.

  • Get-SilUalAccess: отображает общее число уникальных клиентских запросов устройств и клиентских запросов пользователей сервера за предыдущие два дня.

  • Get-SilWindowsUpdate: отображает список всех обновлений Windows, установленных на компьютере, в момент времени.

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

Пример вывода

PS C:\> Get-SilData

ID                 : 961FF8A1-8549-4BEC-8DF6-3B3E32C26FFA
UUID               : B49ACB4C-7D9C-4806-9917-AE750BB3DA84
VMGUID             : E84CCCBD-0D0F-486B-A424-9780C7CF92E4
Name               : Server01Guest.Test.Contoso.com
HypervisorHostName : Server01.Test.Contoso.com

ID          : {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
Name        : Microsoft Visual C++ 2010  x86 Redistributable - 10.0.40219
InstallDate : 12/5/2013
Publisher   : Microsoft Corporation
Version     : 10.0.40219

ID          : {89F4137D-6C26-4A84-BDB8-2E5A4BB71E00}
Name        : Microsoft Silverlight
InstallDate : 3/20/2014
Publisher   : Microsoft Corporation
Version     : 5.1.30214.0

ChassisSerialNumber       : 4452-0564-0284-2290-0113-6804-05
CollectedDateTime         : 10/27/2014 4:01:33 PM
Model                     : Virtual Machine
Name                      : Server01Guest.Test.Contoso.com
NumberOfCores             : 1
NumberOfLogicalProcessors : 1
NumberOfProcessors        : 1
OSName                    : Microsoft Windows Server 2012 R2 Datacenter
OSSku                     : 8
OSSuite                   : 400
OSSuiteMask               : 400
OSVersion                 : 6.3.9600
ProcessorFamily           : 179
ProcessorManufacturer     : GenuineIntel
ProcessorName             : Intel(R) Xeon(R) CPU           E5440  @ 2.83GHz
SystemManufacturer        : Microsoft Corporation

Примечание.

Выходные данные этого командлета аналогичны объединенным выходным данным остальных командлетов Get-Sil для этой функции, однако он предоставляет данные в консоли асинхронно, поэтому порядок объектов может не всегда быть одинаковым.

Для использования командлета Get-Sil нет необходимости запускать ведение журнала инвентаризации программного обеспечения.

Удаление данных, зарегистрированных функцией ведения журнала инвентаризации программного обеспечения

Функция SIL не задумывалась как компонент для решения критически важных задач. Данная служба спроектирована так, чтобы как можно меньше воздействовать на работу локальной системы и при этом обеспечивать высокий уровень надежности. Это также позволяет администратору вручную удалять базу данных журнала инвентаризации программного обеспечения и вспомогательные файлы (каждый файл в каталоге \Windows\System32\LogFiles\SIL) для удовлетворения потребностей в работе.

Удаление данных, зарегистрированных функцией SIL

  1. В PowerShell остановите ведение журнала инвентаризации программного обеспечения, используя команду Stop-SilLogging.

  2. Откройте проводник.

  3. Перейдите в папку \Windows\System32\Logfiles\SIL\.

  4. Удалите все файлы из этой папки.

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

Служба SIL временно сохраняет почасовые коллекции данных, если не удается переслать их по сети. Файлы журнала хранятся в каталоге \Windows\System32\LogFiles\SIL\. Резервные копии данных журнала инвентаризации программного обеспечения можно создавать регулярно, одновременно с запланированными резервными копиями сервера.

Внимание

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

Примечание.

Если по какой-либо причине управление периодом хранения данных, регистрируемых службой SIL локально, становится важным, этот режим можно настроить, изменив значение параметра реестра в разделе \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\SoftwareInventoryLogging. Значение по умолчанию — "30" в течение 30 дней.

Чтение данных, зарегистрированных и опубликованных функцией ведения журнала инвентаризации программного обеспечения

Данные, записанные с помощью SIL, но хранятся локально (если перенаправление в целевой универсальный код ресурса (URI) завершается ошибкой, или данные, которые успешно перенаправываются на целевой сервер агрегирования, хранятся в двоичном файле (для данных каждого дня). Чтобы вывести эти данные в PowerShell, используйте командлет Import-BinaryMiLog.

Безопасность функции ведения журнала инвентаризации программного обеспечения

Для успешного получения данных из WMI ведения журнала инвентаризации программного обеспечения и API-интерфейсов PowerShell требуются права администратора на локальном сервере.

Чтобы успешно использовать все возможности функции ведения журнала инвентаризации программного обеспечения для постоянной пересылки данных в точку агрегирования в динамике (через часовые интервалы), администратор должен использовать клиентские сертификаты для обеспечения безопасных SSL-сеансов для передачи данных по протоколу HTTPS. Общий обзор проверки подлинности HTTPS можно найти здесь: Проверка подлинности по протоколу HTTPS.

Данные, хранящиеся локально на сервере Windows Server (что происходит, если функция запущена, но целевой объект по какой-либо причине недоступен), доступны только пользователю с правами администратора на локальном сервере.

Работа с параметрами даты и времени в функции ведения журнала инвентаризации программного обеспечения Windows Server 2012 R2

  • При использовании команды Set-SilLogging -TimeOfDay для задания времени запуска ведения журнала SIL необходимо указать дату и время. Будет установлена календарная дата и ведение журнала не начнется до достижения этой даты по локальному времени системы.

  • При использовании Get-SilSoftware или Get-SilWindowsUpdate "InstallDate" всегда будет отображаться значение 12:00:00AM, бессмысленное значение.

  • При использовании Get-SilUalAccess "SampleDate" всегда будет отображаться 11:59:00PM, бессмысленное значение.  Дата — это релевантные данные для запросов этих командлетов.

Включение и настройка ведения журнала инвентаризации программного обеспечения на подключенном виртуальном жестком диске

Функция ведения журнала инвентаризации программного обеспечения также поддерживает настройку и включение на автономных виртуальных машинах. Практические способы этого использования предназначены для охвата установки "золотого образа" для широкого развертывания в центрах обработки данных, а также для настройки образов конечных пользователей, поступающих из локальной среды в облачное развертывание.

Для поддержки такого использования функция ведения журнала инвентаризации программного обеспечения включает записи реестра, связанные с каждым настраиваемым параметром. Эти значения можно найти в разделе реестра \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\SoftwareInventoryLogging.

Function Имя значения Data Соответствующий командлет (доступно только в работающей операционной системе)
Запуск и остановка функции CollectionState 1 или 0 Start-SilLogging, Stop-SilLogging
Указывает целевую точку агрегирования в сети. TargetUri строка Set-SilLogging -TargetURI
Указывает отпечаток сертификата или хэш сертификата, используемый для проверки подлинности SSL для целевого веб-сервера. CertificateThumbprint строка Set-SilLogging -CertificateThumbprint
Указывает дату и время запуска функции (если установлено значение в будущем в соответствии с локальным временем системы). CollectionTime Значение по умолчанию: 2000-01-01T03:00:00 Set-SilLogging -TimeOfDay

Чтобы изменить эти значения на автономном виртуальном жестком диске (ОС виртуальной машины не выполняется), такой диск необходимо сначала подключить, а затем можно использовать следующие команды для внесения изменений.

Функция ведения журнала инвентаризации программного обеспечения будет проверять эти значения при запуске операционной системы и выполнять соответствующие действия.

Общие сведения об использовании ведения журналов инвентаризации программного обеспечения в Windows Server 2012 R2 без обновления KB 3000850

Следующие изменения параметров по умолчанию и возможностей функции ведения журнала инвентаризации программного обеспечения были внесены в обновлении KB 3000850.

  • Интервал по умолчанию для сбора и передачи данных по сети при запуске ведения журнала SIL изменено с "каждый день" на "каждый час" (в произвольное время в течение каждого часа).

  • Снижен объем полезных данных по умолчанию, которые теперь включают только объекты командлетов Get-SilComputer, Get-SilComputerIdentity и Get-SilSoftware.

  • Удалено взаимодействие по каналу между гостем и узлом в средах Hyper-V.

Использование ведения журналов инвентаризации программного обеспечения в средах Hyper-V Windows Server 2012 R2 без обновления KB 3000850

Примечание.

Эти функции удаляются при установке обновления KB 3000850.

При использовании ведения журнала инвентаризации программного обеспечения на узле Hyper-V Windows Server 2012 R2 можно получить данные SIL из гостей Windows Server 2012 R2, работающих локально, если ведение журнала SIL было запущено в гостевых. Однако это возможно только при использовании командлетов Get-SilData и Publish-SilData Powershell и только с Windows Server 2012 R2 как в узле, так и в гостях.  Эта возможность позволяет администраторам центров обработки данных, предоставляющих виртуальные машины для клиентов (или других подразделений крупного предприятия), выполнять сбор данных инвентаризации программного обеспечения на узле низкоуровневой оболочки, а затем пересылать все эти данные в точку агрегации (или целевой URI).

Ниже приведены два примера выходных данных в консоли PowerShell (значительно сокращено) на узле Windows Server 2012 R2 Hyper-V под управлением одной гостевой виртуальной машины Windows Server 2012 R2 с запущенным ведением журнала SIL.  Как видно из первого примера, в котором используется только Get-SilData, все данные с узла выводятся должным образом.  Также включены все данные SIL с гостевой виртуальной машины, но в свернутом виде.  Чтобы развернуть и просмотреть эти данные с гостевой виртуальной машины, нужно вырезать и вставить фрагмент, используемый во втором примере ниже.  Объекты данных SIL с гостевой виртуальной машины всегда будут сопровождаться идентификатором GUID виртуальной машины, связанным с объектом.

Примечание.

Поскольку данные SIL выводятся на консоль, при использовании командлета Get-SilData в потоках данных объекты не всегда будет выводится в прогнозируемом порядке.  В двух примерах ниже текст закодирован цветом (синий для данных физического узла и зеленый для данных гостевой виртуальной машины) только в целях демонстрации в рамках этого документа.

Пример выходных данных 1

Снимок экрана: первый пример выходного отчета.

Пример выходных данных 2 (функция w/Expand-SilData)

Снимок экрана: второй пример выходного отчета, который включает функцию Expand-SilData.

См. также

Начало работы скомандлетами веденияжурнала инвентаризации программного обеспечения для инвентаризации программного обеспечения в Windows PowerShellImport-BinaryMiLog Export-BinaryMiLog