Инвентаризация в домене
Инвентаризация в домене
Всё никак не получается подойти к решению данной проблемы.
Сначала был GLPI c Fusion Inventory. И работало и работает он до сих пор, только проблема в агенте — его нужно запускать на клиенте. Как что-то обновляется — его нужно по новой запускать. При изменении добавляет повторную такую же запись. Последний год не добавляли и не ставили на компы. Вот и возникли сложности.
Нужно без агентов, собрать статистику по компьютерам и софту на них. В основном стоит Win7 Pro с MS Office 2010. Посмотрел в сторону MS MAPT (Microsoft Assessment and Planning Toolkit). Поставил, начал тестировать. Ввёл диапазон сетей. Нашло несколько компов (даже много), достучалось до 1-2. Вбил учётные записи, которые 100% есть на компах — ещё 5 штук инвентаризировал, остальные — нет доступа. Как я понял, ему нужно, чтобы компы состояли в AD.
В общем, нехватка времени и постоянные дёргания со стороны не позволяют подойти к полному изучению данного инструмента. Минус данного инструмента — не работает с домашними и домашними расширенными версиями ОС.
Нашёл статью на ixbt.com — [url=Обзор Total Network Inventory]http://www.ixbt.com/soft/total-network-inventory.shtml[/url]. Скачал, начал тестировать. Программа проста в понимании, но, ошибки схожи с MAPT. Не может оно достучаться до большинства компов, где 100% есть у/з, которые я вбил. Вываливается с ошибкой по SMB. Хотя, все компы в домене и доступны.
Подскажите, какое ПО есть, чтобы собрать статистику всех компов и ПО на них в сети без запуска агентов. Недолго читая форумы, некоторые люди пишут, что GLPI может работать без дополнения fusion inventory, но подтверждения так и не нашёл.
Sas
Не может оно достучаться до большинства компов, где 100% есть у/з, которые я вбил. Вываливается с ошибкой по SMB. Хотя, все компы в домене и доступны.
А зачем на компах создавать учётки, если у вас есть домен?
Добавление от 17.03.2015 20:11:
Sas
ПО на них в сети без запуска агентов
Я это делал самописным скриптом, опрашивающим машины по WMI. А потом у нас появился SCCM. Хоть он и с агентом, но он того стоит. Особенно если вспомнить, что SCCM умеет дистанционно впихивать агента на клиентские машины.
Джамаль
А зачем на компах создавать учётки, если у вас есть домен?
Как раз таки незачем. Вводил доменную учётку, как обычную так и с правами администратора. Я примечанием подписал, что на каждом компе, когда устанавливал оборудование или софт — вводил эту учётку, на всех компах она 100 % есть. Вот MAPT, почему-то, не хочет с ней стучаться и вообще её не воспринимает, пишет — acces denied. Как и Network Inventory.
Есть и локальная учётка, которая тоже есть на всех компах — не видят/не хотят и всё тут.
Я это делал самописным скриптом, опрашивающим машины по WMI.
А есть где почитать касательно такого скрипта?
SCCM
Завтра почитаю и потестирую.
Раз акцесс денайд, то либо машины не в домене, либо файрвол включён или поставлен сторонний, либо вашего пользователя кто-то выбросил из группы локальных администраторов. Либо шаловливые ручки прописали левые DNS-серверы, из-за чего машина не может договориться с доменом. Либо те же ручки отключили сервис Server или Remote Registry, чтобы никто не зашёл и ничего не посмотрел. Я такие ручки обычно выдёргиваю и вставляю в плечи, а заодно ремень по заднице начисляю.
Чтобы не останавливали службу сервера, удалённого реестра и WMI, я их в политиках вписал, чтобы они принудительно запускались.
А в чем проблема OcsInventory запускать раз в неделю или раз в день при запуске компа ? Он ведь при установке сервисом на винде устанавливается.
Самого то же этот вопрос интересует , вроде новый касперский умеет инвентаризировать
Если в организации нет полного представления обо всем аппаратном и программном обеспечении, работающем в сети, то задача управления системами и обеспечения их безопасности становится непосильно сложной. Kaspersky Systems Management освобождает управление IT-ресурсами и IT-безопасностью от необходимости строить предположения, действуя вслепую.
Автоматический учет аппаратного обеспечения
Все устройства в сети автоматически обнаруживаются и включаются в реестр аппаратного обеспечения, содержащий подробную информацию о каждом устройстве. Возможно автоматическое обнаружение и гостевых устройств с предоставлением им доступа к интернету без риска для корпоративных систем и данных.
Автоматический учет программного обеспечения
В реестре программного обеспечения содержится подробная информация обо всем ПО в сети, позволяя контролировать использование программ и блокировать неавторизованные приложения. Предоставляя информацию о приобретенных лицензиях и датах окончания их срока действия, реестр ПО помогает обеспечивать централизованное предоставление лицензий и отслеживание их жизненного цикла.
====
но не пробовал и не знаю как это выглядет, может маркетинговая чепуха. Мне бы то же парк машин в GLPI запихнуть . Да еще и раз в неделю дайджест получать об изменениях вынули планку памяти , поменяли жесткий диск . раньше полно такого софта было тот же чеккфг , но все поумирало .
Программа для инвентаризации компьютерного парка — Total Network Inventory
Приветствую дорогие друзья.
Как я уже неоднократно говорил, да и, думаю, Вы сами догадываетесь, меня частенько просят написать что-нибудь из именно админских заметок, а так как » hard — version » (про сервера и прочие совсем админские штуки) этого сайта еще не вышел (но активно разрабатывается), то пока что я буду, правда очень редко и очень кратко (подробного описания, что и как делать, не ждите, но некоторые микро-обзоры программ всё таки мелькать будут) публиковать некоторые статьи по данной теме в рамках этого сайта, как это было, например, со статьей «Сетевой сканер для Windows [Advanced IP Scanner 2.0]».
В этой статье снова будет пару слов о программе сетевой тематики, которая (программа) позволяет проводить инвентаризацию компьютерной сети, что довольно полезно и удобно, особенно для системных администраторов средних и крупных компаний.
Total Network Inventory — программа для инвентаризации
Не знаю кто как, а я люблю знать, что у меня в сети где, зачем и почему. Где обитают сервера, где бухгалтерия, где файлопомойка и что-то еще такое разное, причем не только физически, но и, так сказать, виртуально.
Но мало знать где это всё стоит, какие IP имеет и тд и тп, но порой, в случае инвентаризации (учета всего и вся для нужд бухгалтерии, апгрейдов или еще чего-то подобного) или просто по прибытию на новое место (или даже просто из любопытства 🙂 ), бывает просто жизненно необходимо узнать куда больше данных, а именно, что за железо стоит на всех компьютерах в сети, что за программы и операционная система установлены на той или иной машине, какие принтеры туда воткнуты и всё такое разное.
Естественно, что бегать от компьютера к компьютеру с каким-нибудь AIDA64, довольно накладно, особенно, если компьютеров штучек этак 50 — 100 и за каждым работает кто-либо. И вот тут нам на помощь приходит такая программа как Total Network Inventory .
Занимается она тем, что умеет сканировать через сеть компьютеры с системами Windows, Mac OS X или Linux (и при этом не нужно ничего и никуда дополнительно бегать и устанавливать — достаточно иметь лишь админский пароль) и буквально в два клика позволяет узнать всё необходимое, от всего железа до списка установленных и запущенных программ, установленных системных обновлений, списка автозагрузки и вообще всего всего всего, что может быть необходимо. Количество подробностей поражает воображение и, по сути, не вставая из-за компьютера, Вы получаете по количеству данных тоже самое (а местами и больше), что Вы бы узнали, бегая от машины к машине и используя вышеупомянутую AIDA64 .
Программа полностью на русском языке, имеет крайне симпатичный дизайн и проста в управлении настолько, что я даже не буду описывать, что к чему и как делать (хотя, учитывая, что это статья в формате «для администраторов», то думаю, что оные и сами разобрались куда жмакать, даже если бы всё было не так просто 😉 ). Единственный недостаток — программа платная. Однако, я сторонник того, что в рамках корпоративных решений за хороший софт можно (и местами даже нужно) платить, благо что толковый руководитель компании всегда найдет копейку-другую под админские нужды, тем более, что подобная программка позволит, путем инвентаризации, сэкономить, возможно существенное, количество средств.
Скачать демо версию программы по этой ссылке.
Почитать всякое описание о принципе сканирования можно здесь.
Сайт разработчика со всякой прочей документацией, описанием и тп вот по этой ссылке: Total Network Inventory.
На установке и использовании останавливаться не буду. Любопытные же, могут и в домашних условиях, протестировать программу просто указав свой собственный локальный IP (например 192.168.1.2) или имя компьютера в поле » Добавить » и нажав Enter , а затем надавить в кнопочку » Начать сканирование «, по завершению которого увидеть список всех данных на вкладке » Подробности «.
Послесловие
Кратенько как-то так.
Имейте ввиду, что инвентаризация компьютеров это важная вещь, которая порой бывает крайне необходима и которую часто может потребовать от Вас работодатель.
Как и всегда, если есть какие-то вопросы, дополнения и тп, то буду рад видеть их в комментариях.
Спасибо за внимание и оставайтесь со мной 😉
PowerShell и другие скрипты
Get-Command | Out-Blog
Простенькая инвентаризация ПО на компьютерах
Захотелось тут одному начинающему “автоматизатору” получить данные об установленном на компьютерах сети программном обеспечении, для последующей обработке в Excel 🙂
Если для получения списка компьютеров применить Quest AD Cmdlets, а для проверки их доступности Where-Online то всё будет очень просто 🙂
Share this:
Понравилось это:
Похожее
Навигация по записям
Xaegr, подскажите тогда, пожалуйста, как вытащить информацию, например, о версии IE?
EE namespace :rootcimv2ApplicationsMicrosoftIE
Спасибо.
Konstantin, откуда вы взяли этот namespace? Я его у себя на 2008R2 RC1 не нашел 🙂
Версию IE можно посмотреть например так:
(gi «$env:ProgramFilesInternet Exploreriexplore.exe»).versionInfo.productVersion
8.00.7100.0
Пойдёт?
Подозреваю, что это выходит за рамки «простенькой инвентаризации», но…
В Win32_Product не всегда можно получить полностью адекватный список программ, к примеру, пытаясь получить версию JRE, в Win32_Product у нас будут JRE update 5, JRE update 13 и т.д. Поэтому нужно ставить какой-то фильтр, что неудобно.
Получается, что иногда проще вытаскивать информацию о версиях программ из «rootcimv2Applications» или, например, реестра.
function Get-InternetExplorerVersionWMI <
param ($strComputer)
$hklm = 2147483650
$key = «SOFTWAREMicrosoftInternet Explorer»
$value = «Version»
$wmi2 = «\»+$strComputer+»rootdefault:stdRegProv»
$wmi = [wmiclass]$wmi2
$rpk = ($wmi.GetStringValue($hklm,$key,$value)).sValue
$rpk
>
Get-InternetExplorerVersionWMI $args
Или так:
#Get-InternetExplorerVersionWMI.ps1
$reg = Get-WmiObject -List -Namespace rootdefault -ComputerName $_ | Where-Object <$_.Name -eq «StdRegProv»>
$HKLM=2147483650
$ie = $reg.GetStringValue($HKLM,»SOFTWAREMicrosoftInternet Explorer»,»Version»)
$ie.sValue
Не-не-не. Там же ж $key, $value и $compname можно из $args брать 😉 И будет универсальная читалка реестра по сети =)
И уж если сокращать:
# Get-IEVer-WMI-oneliner.ps1
# Get IE version through WMI in one line! (comments don’t count!) made by pan_2@LJ
(([wmiclass]»rootdefault:stdRegProv»).GetStringValue(2147483650,“SOFTWAREMicrosoftInternet Explorer”,“Version”)).sValue
Согласен, я так собираю информацию о кодеках, DjVu и прочем, что через Windows Installer не всегда проходит, поэтому и $args столько.
прошу прощения пару вопросов,
1. правильно понимаю, что скрипт под PSv2 ?
2.как прикрутить Quest AD Cmdlets к PSv2 ?
у меня выдается сообщение об ошибке
The term ‘Get-QADComputer’ is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try agai
n.
прошу прощения пару вопросов,
1. правильно понимаю, что скрипт под PSv2 ?
2.как прикрутить Quest AD Cmdlets к PSv2 ?
у меня выдается сообщение об ошибке
The term ‘Get-QADComputer’ is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try agai
n.
smilerZ:
1. Нет, этот скрипт вполне будет работать и в 1.0. Посты со скриптами требующими функционала 2.0 я стараюсь помечать соответствующей меткой.
2. Точно так же как к 1.0. Вы видимо установили командлеты, но не подгрузили оснастку. Можно например выполнить команду get-pssnapin -registered | add-pssnapin чтобы подключить все установленные оснастки.
Xaegr Спасибо.
Пытаюсь сделать инвентаризацию ПО при загрузки машины с записью в SQL, при тестировании всех найденных мною вариантов получения списка ПО через
Почему то выдается не полный список ПО, хотя в списке установленных программ она есть и в списке для удаления то же.
Могу лишь предположить что программа была установлена под другим пользователем или даже, до регистрации компьютера в домене.
Вы можете посоветовать, как можно сделать скрипт, который дает полный список установленного ПО.
Так же хочу уточнить при таком запросом обращение идет к реестру, если да, то к какой ветке, я могу проверить почему у меня часть программ не попадает.
Заранее огромное спасибо.
…
Сдается впечатление, что мои сообщения публикуются только со второго раза 😦
Инвентаризация в домене
Администратор
Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1
Недавно начальство попросило меня подумать над вопросом о сборе информации о комплектации компьютеров у нас в домене. Сначала просьба была только на счет процессоров памяти и жестких дисков. Первая мысль — хождение по отделам и просьба освободить компьютер на минутку. В случае с 1 компьютером не сложно, но если их 1500. Мысли были направленны в сторону PowerShell.
Для начала надо было извлечь список всех компьютеров в домене. В данном примере мой домен Test.lan. Импортируем весь этот список в файл AllComputers.csv.
Для этого не забываем добавить модуль АД для PS. У меня на рабочем месте он прописан в профиле, и вам советую сделать тоже самое:
Sort-Object name | Select-Object name | Export-csv C:InventAllComputers.csv -NoTypeInformation
Здесь надо пояснить, что у меня в домене есть папка Disable, где располагаются учетные записи всех отключенных компьютеров. Если они отключены, то какой смысл к ним стучаться. По этому эту папку мы исключаем из поиска.
Всем понятно, что далеко не все компьютеры, которые находятся в домене, включены, работают или вообще имеют место быть. По этому перед тем, как перейти к проверке, мы проверяем связь с ним. Конечно можно этого не делать, если у вас 100 компьютеров. А если у вас 2000 компьютеров, потеря времени при количестве выключенных компьютеров порядка 800 съест у вас не мало времени. Так же стоит сразу вспомнить компьютеры, к которым у нас нет доступа. Так же смысла стучаться в их дверь нет.
import-csv c:InventAllComputers.csv | foreach <
if ((Test-connection $a -count 2 -quiet) -eq «True»)
if ((Get-WmiObject -computername $a Win32_OperatingSystem) -eq $null)
Многие могут возразить:
«Для чего такие сложности? Зачем сначала делать список а потом импортировать его. Не легче ли сразу?»
Согласен, легче. Но иметь перед глазами список компьютеров, согласитесь, приятно. К тому же, список пронумерован. И Вы всегда знаете сколько у вас компьютеров в АД.
Для теста соединения выбрал cmdlet Test-connection с параметром -quiet, дабы нам не выдавались строчки с разной информацией, а просто выдавался ответ: True or False. При чем мы сокращаем количество запросов с 2 до 4.
Если мы постучимся к компьютеру с WMI запросом, а прав на такое действие у нас нет, получим кучу строчек красного цвета с ошибками. Так что сразу отфильтровываем такие компьютеры пробным WMI запросом
Любую информацию (наверное, почти любую) можно узнать, если залезть в WMI объекты, а PS позволяет это делать просто на ура. Так что я сразу углубился в поиски нужных WMI объектов.
Здесь можно поглядеть все классы с их атрибутами.
Убедившись, что компьютер в сети, что доступ у нас к нему есть, смотрим его внутренности:
Write-Host «Проверка компьютера » -ForeGroundColor Green $a
«Компьютер» | out-file c:InventComp$a.txt
Get-WmiObject -computername $a Win32_OperatingSystem |
select-object csname, caption, Serialnumber, csdVersion |
out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_ComputerSystemProduct | select-object UUID |
ft UUID -autosize | out-file c:InventComp$a.txt -append
«Процессор» | out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_Processor | select-object name, SocketDesignation, Description |
«Материнская плата» | out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_BaseBoard | select-object Manufacturer, Product, SerialNumber |
out-file c:InventComp$a.txt -append
«Жесткие диски» | out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_DiskDrive | select-object Model, Partitions, Size, interfacetype |
out-file c:InventComp$a.txt -append
«Логические диски» | out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_LogicalDisk -Filter «DriveType=3» | select-object DeviceID, FileSystem, Size, FreeSpace |
out-file c:InventComp$a.txt -append
«Оперативная память» | out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_Physicalmemory | Select-Object capacity, DeviceLocator |
out-file c:InventComp$a.txt -append
«Видеокарта» | out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_videoController |
Select-Object name, AdapterRAM, VideoProcessor |
out-file c:InventComp$a.txt -append
«Сетевая карта» | out-file c:InventComp$a.txt -append
$OS=Get-WmiObject -computername $a Win32_OperatingSystem | foreach
if ($OS -eq «Microsoft Windows 2000 Professional»)
Get-WmiObject -computername $a Win32_NetworkAdapterConfiguration -Filter «DHCPEnabled=True» |
out-file c:InventComp$a.txt -append
Get-WmiObject -computername $a Win32_NetworkAdapter -Filter «NetConnectionStatus>0» |
Select-Object name, AdapterType, MACAddress |
out-file c:InventComp$a.txt -append
Вся информация о компьютере падает в текстовый файл.
Здесь стоит остановить внимание на 2 моментах.
Во-первых, строчку Write-Host «Проверка компьютера » -ForeGroundColor Green $a я делал исключительно для себя, ибо приятно знать чем занимается в данный момент PowerShell.
Во-вторых, для чего мы перед проверкой сетевой карты проверяем ОС.
К сожалению, Windows 2000 не отвечает на запрос Win32_NetworkAdapter, по этому к ней мы применяем запрос Win32_NetworkAdapterConfiguration. Почему не оставить только последний? Можно оставить, но Win32_NetworkAdapter выдает такой атрибут, как Name, когда в его аналоге только Caption. Мелочь, а приятно.
Так же можете видеть, что при проверки сетевой карты, мы проверяем ее на работоспособность, иначе мы получим список еще из нескольких карт, которые в данный момент Вас не интересуют. Вам это надо?
Вот в принципе и все.
Скрипт можно доработать до своих потребностей.
Инвентаризация ПК в домене
Стала задача провести инвентаризацию компьютеров организации, для установления возможности апгрейда комплектующих.
Может кому-нибудь пригодится данный способ:
1) Установленный/Portable Дистрибутив AIDA64
3) Учетка с правами администратора в данном домене
1) Создаем шару с полным доступом для всех и копируем туда все файлы aida64
2) Запускаем Aida64, заходим в мастер отчетов , выделяем нужные нам свойства и сохраняем на шару рядом с AIDA64.exe — aida64.rpf
3) Делаем бат-файл со следующим содержимым и кладем его на нашу шару в папку с aida64 под именем aida.bat:
\station177AIDALOGS2aida64.exe /R «\station177AIDALOGS2Reports$IPADDR — $HOSTNAME — $USERNAME.txt» /SUM /CSV /SHOWP /NOICONS /CUSTOM \station177AIDALOGS2aida64.rpf
где \station177AIDALOGS2 — путь к шаре
4)Для скана всех известных пк в сети(используется ARP таблица) запускаем данную команду:
Сначала обновляем ARP таблицу:
for /L %a in (1,1,254) do @start /b ping 10.200.1.%a -n 2 > nul
Замените 10.200.1 на вашу подсеть
И команда для инвентаризации:
psexec \* -u domainuser -p ***** -d -n 12 \station177AIDALOGS2aida.bat
, где * — скан всех пк (ARP)
Для скана определенного пк замените * на его имя
В итоге в папке REPORTS обнаружим отчеты в CSV/HTML формате, которые можно просмотреть в любом браузере в удобном виде.
+ данного метода в том, что aida предоставляет множество информации(нужные поля мы сами задаем в мастере отчетов)
+ все происходит в скрытом режиме для конечного пользователя
Он денег стоит:D
Нам было необходимо достать инфу конкретную, чтобы закупить память под старый разрозненный парк. Опять же единоразово, а не на постоянной основе. Так и PRTG хватает
Опять повторюсь, аида позволяет достать ту же макс поддерживаемую ОЗУ + количество свободных слотов + поддерживаемые типы достать. И еще кучу всего по желанию. Не всякий софт справится.
А зачем перед сканированием ARP-таблицу очищать?
А именно очищать ее нужно перед сканом подсети так как некоторые пк, которые закэшировались в таблице уже могут быть выключены и это удлиняет время отработки скрипта.
У меня строчка завелась только после изменения:
for /L %%a in (1,1,254) do @start /b ping 10.200.1.%a -n 2 > nul
Без этого ошибка «Непредвиденное появление а».
Дык это не очистка, а наоборот заполнение таблицы — пинг каждого пк в указанной подсети в указанном диапозоне, чтобы pstools смогла отработать с * диапозоном.
Как этот процесс заставить работать не в домне.
Допустим, на всех ПК есть админская учётка «admin» c одним и тем же паролем.
Первую проблему победил — это заставил psExec заходить на ПК — на всех ПК разрешил доступ к админиским шарам «C$» (в домене он уже включён, а у меня компьютеры не в домене), командой:
reg add «HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem» /v «LocalAccountTokenFilterPolicy» /t reg_dword /d 1 /f
Вторая проблема в том что psExec надо запускать в cmd, запущенной от администратора, т.к. aida64 требует повышения прав.
Третью пробелму я не смог победить: проблема в том, что psExec не может запустить бат файл с шары, хотя доступ для всех и без пароля (вручную с другого с ПК, с которого мне надо собрать отчёт я могу запустить из шары этот bat файл):