Pull to refresh
-9
0
Send message

Всё просто, понимаю, что это не то уже сообщество, к сожалению, которое читал много лет, и прилетят минусы, просто надо понять, что есть молодые "айтишники", которым промыли мозги и которые готовы просочиться через любую дыру в Верхнем Ларсе и не иметь принципов, и те, которые за 37 лет в it решили остаться, и знают, чем себя занять, просто потому, что они не отделяют себя от страны и не считают себя гражданами мира, несмотря на glasnet. И да, в разные времена к ним тоже приходили, но не за отсутствие позиции в том же 1991 или 1993, а потому, что Родине надо было, чтобы они временно побыли по своей воинской специальности командирами танковых взводов, и не всё меряется деньгами, и если сейчас надо, то первым делом надо не покупать билеты в неизвестность и оттуда рассуждать о том, какая хреновая жизнь настала, а собирать "тревожный чемоданчик" как учили - этих, видимо, недоучили, и ждать вызова в военкомат - и это нормально, а не следователя за свою пургу во вражеских соцсетях.

Как только в вашей организации появляются центры проектного менеджмента, дирекции по цифровой трансформации и прочие "высокоуровневые" организаторы - бегите срочно из такой организации!

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

Сначала был тетрис на СМ-1420

А в чём проблема пойти и послужить ещё раз (если хоть раз служили) и выполнить свой долг, как гражданина страны (или вы все уже не граждане)?

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

Расскажу историю немного не про ИТ-безопасность. 1996 год, январь, командировка в Гренобль с коммерческим директором (в качестве переводчика). Лететь удобнее через Женеву - там два выхода - на швейцарскую и французскую сторону. Прилетели ночью, выходим на французскую сторону, кабинка, где должны сидеть погранцы/таможенники ихние - закрыта (причем так и написано, что прохода нет), а слева уже принимающая сторона руками машет, давайте скорее, пора ехать. Сели в машину, уже к Греноблю подъезжаем, и тут я понимаю, что отметки в паспортах нам никто не проставил. Обратно возвращались когда, думал всё - кранты Шенгенской мультивизе лет эдак на пять, но обошлось - объяснил погранцам, что сами виноваты, что их не было, билеты опять таки показал - пронесло)

Статья показывает уровень современного подхода к получению плюшечек от жизни: желательно, погорячее, повкуснее и, главное, ничего не делая. Ни один онлайн-курс не заменит базового, желательно высшего образования (не корочки о нём), причём в том, что касается IT, как правило, лучше бы всё-таки немного технического, хотя в определённых областях, причём на топ-позициях (не кодировании), гуманитарии тоже могут оказаться незаменимы. ВУЗ даёт человеку способ получения нужных ему знаний самостоятельно, в отличие от школы. И не важно в какой узкой области знаний вы специалист - никогда не знаешь что выстрелит, но если вас научили получать знания, причём постоянно - вы справитесь в любой области. Недаром на госэкзамены по специальности разрешали раньше приносить любые учебники и справочники, даже писать ответы в институтской библиотеке - если ты не учился - всё равно не справишься и поплывёшь на вопросах. А если человек может не зная точной формулы (не проходил на вечёрке, а год терять неохота) решить задачу, да хоть из закона сохранения энергии (реальная история), то понятно, что он всегда сможет наверстать свои знания и "доучить" точную формулу. Если ты понимаешь, что задачу, которую вроде бы надо реализовать на Python, быстрее, проще и "дешевле" решить на другом известном тебе языке - почему бы и нет? Только один он-лайн курс по Python тебе в этом никак не поможет.

если только к Интернет

PPS. Тут тоже куча нюансов, особенно для сетевиков и безопасников. Регламенты приплывают и сверху в организацию). Как минимум, доступ к проводной сети/Wi-Fi только идентифицированным пользователям, гостям - как минимум по номеру телефона, с логированием для очень проверяющих органов (ACL, отдельные VLAN и т.д.), а если ещё и несовершеннолетние в сети присутствуют (отдельный DNS с блокировкой нежелательного трафика и т.д.). Тут только серьёзный LMS поможет с контролем подключенных устройств.

 Ну и сетки где нет AD'a тоже как бы имеются

P.S. Разумеется, в современной организации до 30%-40% подключенных к сети ПК (ноутбуков) и 99% подключенных по Wi-Fi смартфонов могут быть не доменными, а значит неуправляемыми службой IT, опять таки вопрос к регламентам - куда Вы их пускаете в Вашей локальной сети - если только к Интернет, то вопросов нет и учитывать, я думаю, Вы их просто не захотите - они же, как правило личные, ну, или, как минимум необслуживаемые в полном объеме. И уж тем более Вы не станете, надеюсь, их nmap'ить и брутфорсить, чтобы получить к ним доступ и считать конфигурацию). А вот если Вы захотите пустить их к внутренним ресурсам...

Ну это в вашей реальности всё так устроено... 

Конечно, у каждого своя реальность.) Вы пишите проект прежде всего для себя и под свои нужды, а потом уже open source, если кому-то подойдет Ваша концепция, иначе это уже стоит денег). Просто делюсь опытом - нам вполне хватает SCCM для управления, связанного с ним SD для техподдержки и учёта + вывод дополнительных отчётов в дашборд SD для руководства в виде виджетов PBI, если таковых не хватает в самих SCCM и SD). В любом случае, надо отталкиваться от регламентов и культуры организации, ну и постоянно совершенствоваться)

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

Ну это когда есть возможность что то там запустить на стороне компиков... И можешь ходить и что то там монтировать...

Решается через ГП и сервисную учётку, входящую в группу локальных администраторов на ПК.

Плюс - даже если ты получишь из AD'а перечень машинок, то не факт что та или иная машинка на момент проверки будет включена или доступна как таково...

Когда включится, тогда и отправит отчёт - мы ведь не спешим)

В принципе - если на машинке изменится айпишник или имя хоста, то это будет расценено как изменение и об этом изменении тупо притопает уведомление, ну и в отчёте будет отражено...

Имя хоста меняется только специалистом техподдержки и по согласованным правилам. Смена IP (воткнули в другую розетку, включили через время, превышающее время аренды в DHCP) ни на что не влияет. Речь о первоначальном сборе информации. Дальше - запрашиваешь изменения конфигурации по имени хоста хоть каждый час.

Исключения - пользователь с административными правами исключил сервисную учётную запись (группу) из группы локальных администраторов, установил сторонний антивирус, отключил службы управления и т.п. - если не лечится через ГП, то блокировка в AD как юзера, так и ПК + блокировка MAC-адреса на коммутаторе до выяснения. После выяснения - в лучшем случае обычный юзер.

Из практики на 5т юзеров / 3т+ ПК таких деятелей встречается максимум 20 человек/ПК - на статистику не влияет).

Да и на самих ПК проще разок прогнать скрипт PS для сбора необходимой информации, разрешив выполнение скрипта через групповые политики, например и подключив временно через net use сетевую папку на сервере, а дальше работать с полученным csv:

# Получение характеристик текущего ПК и добавление их в файл на сервере
$computerSystem = Get-WmiObject CIM_ComputerSystem
$computerBIOS = Get-WmiObject Win32_BIOS|Select-Object SerialNumber,ReleaseDate
$computerOS = Get-WmiObject CIM_OperatingSystem|Select-Object caption,Version,LastBootUpTime
$computerCPU = Get-WmiObject CIM_Processor
$Part = Get-WmiObject Win32_DiskPartition -Property *| Where-Object {$_.BootPartition -eq "True"}
$PhDisk = Get-WmiObject Win32_DiskDrive |Where-Object {$_.Index -eq $Part.DiskIndex}
$ComputerMAC=Get-WmiObject Win32_NetworkAdapter |where-Object {$_.PhysicalAdapter -eq "True" -And $_.NetEnabled -eq "True" -And $_.Name -NotLike "*Virtual*" -And $_.Name -NotLike "*Wire*" -And $_.Name -NotLike "*Bluetooth*"} |Select-Object -Property MACAddress,Name

$PC_Name = $computerSystem.Name
$PC_Man = $computerSystem.Manufacturer
$PC_Mod = $computerSystem.Model
$PC_SN = $computerBIOS.SerialNumber
$PC_BIOS_date =[Management.ManagementDateTimeconverter]::ToDateTime($computerBIOS.ReleaseDate).ToString("G")
$PC_CPU = $computerCPU.Name
$PC_Speed = $computerCPU.MaxClockSpeed
$DiskSize = "{0:N2}" -f ($PhDisk.Size/1GB)
$PC_RAM = "{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB)
$PC_MAC = $ComputerMAC.MACAddress
$PC_Net = $ComputerMAC.Name
$PC_OS = $computerOS.caption
$PC_Version = $computerOS.Version
$PC_User = $computerSystem.UserName
$PC_Last = [Management.ManagementDateTimeconverter]::ToDateTime($computerOS.LastBootUpTime).ToString("G")
$Content = "$PC_Name;$PC_Man;$PC_Mod;$PC_SN;$PC_BIOS_date;$PC_CPU;$PC_Speed;$DiskSize;$PC_RAM;$PC_Net;$PC_MAC;$PC_OS;$PC_Version;$PC_User;$PC_Last"
Add-Content -Value $Content -Path "Y:\PCInfo.txt"

Зато потом можно показать начальству какой-нибудь красивый график в реальном времени):

Если требуется учитывать только доменные ПК, то в рамках AD имена объекта Computer будут уникальны, да и в DNS при регистрации через DHCP будет всегда текущий IP данного ПК. Но тогда и nmap не нужен - достаточно PS (Get-ADComputer). Всё равно недоменные ПК, выявленные через сканирование сети не будут доступны учетной записи с доменными правами для изучения.

В общем же случае, если нужен именно учет, то лучше пнуть бухгалтерию и связать инвентарный номер из 1С с реальным ПК, например через расширенный атрибут объекта в AD:

$comp = Get-ADComputer -Properties Name, extensionAttribute9 $pcname | Select-Object -Property Name, extensionAttribute9

$invnum = $comp.extensionAttribute9

Записывать его туда тоже желательно не руками, а скриптом, чтобы соблюсти уникальность. Да, имена ПК тоже могут меняться, например при перезаливке, замене комплектующих (сетевая, hdd, MB) - инвентарный до списания будет тот же.

Ну а если учитывать все ПК (в том числе недоменные), то без своего, IT-шного уникального ID не обойтись.)

А еще ведь есть наверняка сетевые принтеры, МФУ, коммутаторы и т.д, доступные по SNMP...

В общем, удачи!

Идея, конечно, неплохая - и учет и open source, но делать ключевым идентификатором MAC-адрес - в корне не правильно. Я собственно по этим строчкам кода:

networkadapters = wmic.query("SELECT * FROM Win32_NetworkAdapterConfiguration")

for nd in networkadapters:

if len(re.findall(":", str(nd['MACAddress']))) == 5 and findWholeWord('WAN Miniport')\(str(nd['Description'])) == None:

systeminfo.append(str(nd['MACAddress']))

Но что будет, если MAC-адресов несколько (в лучшем случае), отвечающих условию, или, не дай бог, первыми живыми в DeviceID окажутся адреса виртуальных адаптеров - у кого-то WMvare, у кого-то VBox и т.д., причём с одинаковыми адресами на разных машинах - что при более-менее нормальном парке машин - далеко не редкость. В лучшем случае, Вы получите постоянное изменение оборудования на данных ПК (сегодня это будет один ПК, завтра - другой). IP-адреса, кстати, тоже будут меняться при нормально настроенном DHCP). Да даже просто наберите на каком-нибудь ноутбуке (без виртуалок): wmic nic list brief

Получите 3-4 живых адаптера с MAC-адресами, описаниями (если full взять, а не brief) и не являющимися WAN Miniport.

Посмотрите, как организованы базы и сканирование, в том числе через WMI (без агентов через VB-скрипт, да и с агентами) в ManageEngine ServiceDesk или в том же SCCM (даже он не может определить единственную сетевую карту при наличии виртуального адаптера). Весь смысл учёта в актуальности данных CMDB. Да, можно, конечно не разрастаться 1500 таблицами для реально нужной информации, но без уникальной идентификации ПК не обойтись.

Про закрытый, наверняка, у какого-то немалого % ПК 135 порт или отключенную шибко умным пользователем с админскими правами WinRM или убитую в хлам базу WMI (Winmgmt) молчу - больно(.

Information

Rating
Does not participate
Registered
Activity