Показать полную графическую версию : Сведения об IP
aragonds
26-10-2022, 07:44
День добрый! Возникла потребность в сборе логов при авторизации пользователей в систему в домене. Сейчас реализован механизм по средствам logon через переменные (set, echo)
"\\server\папка\%date%_logon.txt" echo %TIME% ^| %COMPUTERNAME% ^| %USERNAME%
Метод удобен тем , что у пользователя при входе в сеанс в домене срабатывает logon и происходит запись лога в отельный файл где указано в какое время, какой пользователь авторизовался на каком АРМ. Но минус этого, что на предприятии стоит динамические ip парой приходится выяснять по ip адресу кто работал на АРМ.
Может есть у кого готовое решение, как можно собирать в отдельный файл логирование типа - Дата|Компьютер|Доменная УЗ пользователя|IP адрес АРМ. Будь это метод сбора данных через logon или GPO
Но минус этого, что на предприятии стоит динамические ip парой приходится выяснять по ip адресу кто работал на АРМ. »
Вы не знаете как заполучить IPv4 адрес единственного активного сетевого подключения?
DJ Mogarych
26-10-2022, 10:53
Powershell:
"$((get-date).ToString())|$($env:computername)|$($env:username)|$((Get-NetIPAddress |? InterfaceIndex -eq (Get-NetAdapter -Physical).ifindex).ipaddress)" >> "\\server\папка\$($env:username)_logon.txt"
aragonds
26-10-2022, 12:49
Powershell: »
Огромное спасибо! работает, если только на банке установлена ода сетевуха) если две строка ip будет пустой
DJ Mogarych
26-10-2022, 15:26
Можно так попробовать, чтобы работало и для нескольких адресов:
"$((get-date).ToString())|$($env:computername)|$($env:username)|$((Get-NetIPAddress |? InterfaceIndex -in (Get-NetAdapter -Physical).ifindex).ipaddress -join(", "))" >> "\\server\папка\$($env:username)_logon.txt"
aragonds
26-10-2022, 15:49
Можно так попробовать, чтобы работало и для нескольких адресов: »
Если стоит динамика на банке выдает локальный ipv6 адрес канала и рядом ipv4. Можно сделать фильтрацию по ipv4 ?
DJ Mogarych
26-10-2022, 16:07
"$((get-date).ToString())|$($env:computername)|$($env:username)|$((Get-NetIPAddress |? {$_.InterfaceIndex -in (Get-NetAdapter -Physical).ifindex -and $_.AddressFamily -eq 'IPv4'}).ipaddress -join(", "))" >> "\\server\папка\$($env:username)_logon.txt"
aragonds
27-10-2022, 07:32
Спасибо! Такой вопрос еще, на windows 7 возможно сделать чтобы этот скрипт отрабатывался ?
DJ Mogarych
27-10-2022, 08:52
Да, установить туда Powershell 5.1, который входит в состав WMF 5.1 (https://learn.microsoft.com/ru-ru/powershell/scripting/windows-powershell/wmf/setup/install-configure?view=powershell-7.2). Через GPO с WMI-фильтром на Windows 7 разливается без проблем.
aragonds
31-10-2022, 14:40
Да, установить туда Powershell 5.1, который входит в состав WMF 5.1. Через GPO с WMI-фильтром на Windows 7 разливается без проблем. »
Через GPO с фильтром не пробовал сделать, закинул через logon. На windows 8-10 отрабатывается, но на windows 7 ошибку выдает (предварительно установил Powershell 5.1):
powershell -ExecutionPolicy Bypass -File \\сервер\Logon\AD_Log.ps1
Get-NetIPAddress : The term 'Get-NetIPAddress' is not recognized as the name of
a cmdlet, function, script file, or operable program. Check the spelling of th
e name, or if a path was included, verify that the path is correct and try agai
n.
At \\сервер\Logon\AD_Log.ps1:8 char:68
+ ... ())|$($env:computername)|$($env:username)|$((Get-NetIPAddress |? {$_. ...
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-NetIPAddress:String) [], Co
mmandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Так понимаю, в Windows 7 он не понимает данные параметры, при вводе данной команды он выводит сведения о сетевке
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = True'
там есть параметр IPAddress
Вот эта команду выводит правильный ip адрес, но как сделать чтобы записывал его в файл, не пойму.
(Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = True').IPAddress[0]
DJ Mogarych
31-10-2022, 15:23
Мда, упустил из виду тот момент, что не всё ограничивается версией PS...
Вот:
"$((get-date).ToString())|$($env:computername)|$($env:username)|$((gwmi Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = True').ipaddress -notmatch ':' -join(", "))" >> "\\server\папка\$($env:username)_logon.txt"
aragonds
31-10-2022, 16:02
Мда, упустил из виду тот момент, что не всё ограничивается версией PS... »
Спасибо теперь и там и там работает !!!
aragonds
07-11-2022, 08:59
Через GPO с WMI-фильтром на Windows 7 разливается без проблем. »
Возникает проблема при отработке скрипта Powershell при сценарии входа в систему пользователем групповой политике. Запуск скрипта добавлен в GPO в сценарии с параметрами %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -Noninteractive -ExecutionPolicy Bypass –Noprofile -file \\сервер\папка\PSScript.ps1
При этом срипт не отрабатывается, по логам системы выявлено, что ошибка сценария возвращается с кодом ошибки 4294770688. Все права на расположение добавлены, вычитал что может возникать при отсутствии двойных кавычек. Что может быть еще не так?
DJ Mogarych
07-11-2022, 16:53
Из ключей надо оставить только -ExecutionPolicy Bypass
Политика привязать к пользователю, а не к компу.
На вкладке сценария входа в систему выбрать вкладку "сценарии Powershell" и указывать только путь к нему в расшаренной папке.
aragonds
08-11-2022, 07:29
Из ключей надо оставить только -ExecutionPolicy Bypass »
Правильно ?
DJ Mogarych
08-11-2022, 09:48
Да.
aragonds
10-11-2022, 07:08
Да. »
спасибо, теперь стал отрабатывать скрипт через gpo
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.