ОС Windows 10, Windows Server 2012 и выше.
- состав программного обеспечения;
- настройки и параметры ОС (локальные пользователи, настройка IP, общие каталоги, службы, задания планировщика и т.п.);
- параметры оборудования (объем памяти, процессор, сетевые карты и т.п.).
Командлет собирает 19 типов инвентаризационной информации.
Командлет позволяет выполнять сбор путем запуска процедуры сбора непосредственно на объекте сбора (локальный сбор), так и сбор с нескольких объектов подключенных к локальной сети (удаленный сбор), например, с компьютеров подключенных к сети и включенных в домен Active Directory.
Результат сбора - файлы CSV формируемые в разрезе объекта сбора (имя компьютера) и типа инвентаризационной информации. В случае сбора с нескольких объектов предусмотрена процедура объединения (обработки) информации обеспечивающая консолидацию собранной информации по типу.
Сбор инвентаризационной информации осуществляется с использованием запросов к объектам Windows Management Instrumentation (WMI) и системному реестру ОС Windows.
Локальный сбор инвентаризационной информации предполагает запуск процедуры сбора непосредственно на объекте сбора. Локальный сбор может быть организован на СВТ как подключенных к сети, так и автономных. Локальный сбор информации не требует запуска под учетной записью обладающией адмнистративными правами на объекте сбора, при использовании запуска из планировщика предполагается запуск от SYSTEM.
Удаленный сбор инвентаризационной информации предполагает запуск процедуры сбора на выделенном сетевом компьютере (сервере), имеющим доступ к объектам сбора. Процедура удаленного сбора информации запускатся под учетной записью обладающим административными правами на объектах сбора. Возможен сбор инвентаризационной информации с компьютеров включенных в домен Active Directory (AD) и расположенных в определенном Organization Unit (OU), либо с компьютеров путем перечисления имен (либо в файле).
Допускается использование локального и удаленного сбора совместно, например:
- удаленный сбор с компьютеров включенных в один домен;
- локальный сбор с компьютеров включенных в другой домен или автономных компьютерах.
Процедура обработки инвентаризационной информации предназначена для объединенния собранной по компьтерам информации, в файлы по типу инвентаризационной информации. Так же процедура обеспечивает поддержку в актуальном состонии инвентаризационной информации путем удаления файлов инвентаризации старше заданного количества дней. Обработка инвентаризационной информации не требует административных прав, требуются полные права на каталоги InvAnyComputers, InvResult и Logs.
Start-Inventory -StartType -SelectInvType -InvComputerList -InvOU -InvFolderAnyComputers -InvFolderResult -InvFolderLog
-InvFolderZIPFiles -DayOld -InvRemoteDayOld -ExtendLog -ModuleParameters| Параметр | Значение | Описание |
|---|---|---|
| StartType | Тип запуска командлета | |
| InvRemote | Удаленный сбор | |
| InvLocal | Локальный сбор | |
| CreateResult | Обработка инвентаризационной информации | |
| InvRemoteCreateResult | Удаленный сбор и обработка инвентаризационной информации (используется по умолчанию) | |
| InvFolderAnyComputers | (String) | Каталог хранения файлов данных инвентаризации по отдельным компьютерам. При локальном сборе - размещение файлов инвентаризации. Формат имен файлов MMMM.TTT.csv, МММ - имя компьютера, TTT - тип информации |
| InvFolderResult | (String) | Каталог для сохранения итоговых результирующих файлов инвентаризации. Формат имен файлов TTT.csv, TTT - тип информации |
| InvFolderZIPFiles | (String) | Каталог с ZIP файлами автономной инвентаризации. При локальном сборе - каталог размещения архива с данными инвентаризации |
| InvFolderLog | (String) | Каталог размещения протоколов работы |
| SelectInvType | Выбор типов инвентаризационной информации для сбора (если параметр не задан - выполняется сбор всех возможных типов информации) | |
| select | Интерактивный выбор | |
| (List) | Перечисление типов для сбора, например usr, net, svc | |
| InvComputerList | Перечень имен компьютеров с которых будет выполнен сбор | |
| file:Computers.csv | Имя файла с перечнем копьютеров (заголовок в файле ComputerName), обязательно префикс file: | |
| (List) | Перечисление имен компьютеров | |
| InvOU | (String) | Наименование OU в домене где расположены компьютеры с которых будет выполнен сбор |
| DayOld | (Int) | Количество дней хранения инвентаризационной информации в каталоге InvFolderAnyComputers |
| InvRemoteDayOld | (Int) | Проверять наличие файлов инвентаризационной информации старше установленного количества дней перед удаленным сбором, по умолчанию 0 - не проверять |
| ExtendLog | $False | Не вести расширенный протокол (по умолчанию) |
| $True | Вести расширенный протокол | |
| ModuleParameters | (HashTable) | Дополнительные параметры модулей сбора - передача параметра в модуль |
Пример формирования значения для параметра ModuleParameters:
$Parameters = @(
@{Module = "shr"; VarName = "DepthChildFolder"; VarValue = 2},
@{Module = "Тип модуля"; VarName = "Наименование переменной"; VarValue = "Значение переменной"}
)- Собрать инвентаризационную информацию со всех объектов из InvOU (distinguishedName) домена и выполнить обработку данных, расположение файлов инвентаризации C:\Inventory\Src\Results\InvAnyComputers, результирующих файлов C:\Inventory\Src\Results\InvResult
Start-Inventory -StartType InvRemoteCreateResult -InvFolderAnyComputers C:\Inventory\Src\Results\InvAnyComputers -InvFolderResult C:\Inventory\Src\Results\InvResult -InvOU OU=Servers,DC=domen,DC=ru- Собрать инвентаризационную информацию со всех объектов из InvOU (distinguishedName) домена, расположение файлов инвентаризации C:\Inventory\Src\Results\InvAnyComputers, результирующих файлов C:\Inventory\Src\Results\InvResult (для выгрузки объектов из InvOU), использовать возможность интерактивного выбора типов инвентаризационной информации
Start-Inventory -StartType InvRemote -InvFolderAnyComputers C:\Inventory\Src\Results\InvAnyComputers -InvFolderResult C:\Inventory\Src\Results\InvResult -InvOU OU=Servers,DC=domen,DC=ru -SelectInvType select- Собрать инвентаризационную информацию со всех объектов из InvOU (distinguishedName) домена, расположение файлов инвентаризации C:\Inventory\Src\Results\InvAnyComputers, результирующих файлов C:\Inventory\Src\Results\InvResult (для выгрузки объектов из InvOU),выполнить сбор только указанных типов usr,net
Start-Inventory -StartType InvRemote -InvFolderAnyComputers C:\Inventory\Src\Results\InvAnyComputers -InvFolderResult C:\InventorySrc\Results\\InvResult -InvOU OU=Servers,DC=domen,DC=ru -SelectInvType usr,net- Собрать инвентаризационную информацию со всех объектов из InvOU (distinguishedName) домена, расположение файлов инвентаризации C:\Inventory\Src\Results\InvAnyComputers, результирующих файлов C:\Inventory\Src\Results\InvResult (список компьютеров с которых выполнен сбор), выполнить сбор с компьютеров из списка srv1, srv2
Start-Inventory -StartType InvRemote -InvFolderAnyComputers C:\Inventory\Src\Results\InvAnyComputers -InvFolderResult C:\Inventory\Src\Results\InvResult -InvComputerList srv1, srv2- Собрать инвентаризационную информацию со всех объектов из InvOU (distinguishedName) домена, расположение файлов инвентаризации C:\Inventory\Src\Results\InvAnyComputers, результирующих файлов C:\Inventory\Src\Results\InvResult, выполнить сбор с компьютеров из файла Computers.csv
Start-Inventory -StartType InvRemote -InvFolderAnyComputers C:\Inventory\Src\Results\InvAnyComputers -InvFolderResult C:\InventorySrc\Results\\InvResult -InvComputerList file:Computers.csv- Собрать инвентаризационную информацию с локального компьютера, данные поместить в каталог C:\Inventory\Src\Results\InvAnyComputers, создать ZIP архив в каталоге InvFolderZIPFiles
Start-Inventory -StartType InvLocal -InvFolderAnyComputers C:\Inventory\Src\Results\InvAnyComputers -InvFolderZIPFiles C:\Src\Results\Inventory\ZIP- Выполнить обработку собранной инвентаризационной информации
Start-Inventory -StartType CreateResultInventory
|-- Docs # Документация
|-- Src # Расположение командлета и скриптов запуска командлета
| |-- Results # Расположение файлов результатов инвентаризации
| |-- Report # Расположение файла отчета XLS
| | |- inv.xlsm # Файл отчета XLS
| | |- inv.html.styles.css # Файл стилей для HTML отчета
| |-- Modules # Основные скрипты командлета
| | |- Get-Inventory-Module # Расположение модулей командлета Get-Inventory (имя модуля = обозначение типа информации)
| | | |-- dsk.ps1 # Модуль сбора логических дисков
| | | |-- evt.ps1 # Модуль сбора событий включения и выключения компьютера
| | | |-- gpu.ps1 # Модуль сбора графических адаптеров
| | | |-- grp.ps1 # Модуль сбора состава локальных групп
| | | |-- hdd.ps1 # Модуль сбора физических дисков
| | | |-- hfx.ps1 # Модуль сбора установленных обновлений ОС
| | | |-- hwr.ps1 # Модуль сбора аппратной конфигураци
| | | |-- map.ps1 # Модуль сбора подключенных сетевых дисков
| | | |-- mnt.ps1 # Модуль сбора информации о подключенных мониторах
| | | |-- net.ps1 # Модуль сбора информации по сетевым интерфейсам
| | | |-- pci.ps1 # Модуль сбора PCI устройств
| | | |-- prf.ps1 # Модуль сбора профилей пользователей
| | | |-- ram.ps1 # Модуль сбора модули памяти
| | | |-- shr.ps1 # Модуль сбора информации по общим ресурса
| | | |-- svc.ps1 # Модуль сбора служб ОС
| | | |-- swr.ps1 # Модуль сбора установленного ПО
| | | |-- tsk.ps1 # Модуль сбора заданий планировщика
| | | |-- usr.ps1 # Модуль сбора локальных пользователей
| | | |-- reg.ps1 # Модуль сбора значений параметров реестра
| | |-- Get-Inventory.ps1 # Командлет Get-Inventory
| | |-- CheckFolder.ps1 # Проверка используемых каталогов
| | |-- CheckLogFile.ps1 # Проверка возможности ведения файла протокола
| | |-- CheckOU.ps1 # Проверка параметра InvOU (OU AD)
| | |-- CreateResult.ps1 # Модуль формирование итоговых файлов с результатами инвентаризации
| | |-- DeleteOld.ps1 # Модуль удаления старых файлов инвентаризации
| | |-- Get-Computer.ps1 # Командлет получения перечня компьютеров в домене
| | |-- Get-FolderAccess.ps1 # Модуль получения разрешений NTFS для каталога, включая вложенные каталоги
| | |-- InvLocal.ps1 # Модуль запуска локальной инвентаризации
| | |-- InvType.ps1 # Модуль формирования справочника типов инветаризации
| | |-- ListComputers.ps1 # Модуль получения перечня компьютеров с которых будет выполнен сбор
| | |-- PollComputers.ps1 # Модуль удаленного сбора инвентаризации
| | |-- SelectInvType.ps1 # Модуль выбора типов собираемой информатизации
| | |-- UnZIP.ps1 # Модуль распаковки ZIP архивов с файлами инвентаризации
| | |-- WriteLog.ps1 # Модуль записи в лог файл
| |-- InvLocal.cmd # Командный файл запуска процедуры локальной инвентаризации
| |-- InvLocal.ps1 # Скрипт запуска локального сбора инвентаризации
| |-- InvRemote.ps1 # Скрипт запуска удаленного сбора инвентаризации
| |-- InvWork.ps1 # Скрипт запуска обработки информации
| |-- Start-Inventory.psm1 # Командлет сбора и обработка инвентаризационной информации
| |-- Start-Inventory.psd1 # Манифест для Start-Inventory.psm1
Новгородов Павел 10.2025
PowerShell, WMI, WinRM, Windows, инвентаризация, установленное по, ит активы, состав оборудования, настройки ОС