Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - grep для PowerShell?

Ответить
Настройки темы
PowerShell - grep для PowerShell?

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


В linux записываю результат выполнения nmap в файл списком ip:
Код: Выделить весь код
nmap -p 3389 --proxy --open -sV 171.98.128.0/17 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq > /home/kali/Inetcom2.txt
Windows версия grep в таком случае демонстрирует ошибку. Как написать для PowerShell?

Отправлено: 02:29, 30-06-2023

 

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


ts1000win, да, понятно, спасибо.
Это просто неверное использование оператора, т.е. Вы использовали оператор в качестве параметра командлета Start-Process, на что вполне резонно, выдано соответствующее сообщение.

-------
scio me nihil scire. Ѫ


Отправлено: 09:30, 03-07-2023 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png sc.png
(119.8 Kb, 3 просмотров)

Но использовать -match все равно не получается:
Код: Выделить весь код
start-process -filepath 'C:\Program Files (x86)\Nmap\nmap' -argumentlist '-p 3389 --open -sV 77.40.0.0/17' -match '([0-9]{1,3}\.){3}[0-9]{1,3}','2>&1' -RedirectStandardOutput 'C:\Users\Administrator\Documents\p2.txt' -WindowStyle 'hidden'

Так тоже нет:
Код: Выделить весь код
start-process -filepath 'C:\Program Files (x86)\Nmap\nmap' -argumentlist '-p 3389 --open -sV 77.40.0.0/17' | start-process -filepath 'C:\Program Files (x86)\GnuWin32\bin\grep' -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}','2>&1' -RedirectStandardOutput 'C:\Users\Administrator\Documents\p2.txt' -WindowStyle 'hidden'

Последний раз редактировалось ts1000win, 04-07-2023 в 22:28.


Отправлено: 21:22, 04-07-2023 | #12


Старожил


Сообщения: 250
Благодарности: 51

Профиль | Отправить PM | Цитировать


потому что надо читать документацию и узнать что match
это не флаг start-process а оператор типа string (вероятно реализован через методы расширения)
а argumenlist нoоaборт это флаг
кстати лоджен предупредить отстримить инпут в start-process наверное не выйдет никак
скажите плохо наверное тому живется кого в гугле забанили ?

Последний раз редактировалось Serguei Kouzmine, 05-07-2023 в 00:16.


Отправлено: 00:07, 05-07-2023 | #13


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


ts1000win, Вы бы озвучили свою задачу, а то решаете её в режиме "XY" ... просто напишите, что в итоге желаете получить.
1. Почему Вы пытаетесь выполнить nmap в отдельном процессе? Так у Вас ничего не выйдет, если желаете создать выборку строк из текстового выхлопа команды.
2. Чем Вас не устроил первый ответ? Вы его вообще проверяли?
3. Пробуйте так:
Код: Выделить весь код
nmap -sn scanme.nmap.org 2>&1|?{$_ -match '([0-9]{1,3}\.){3}[0-9]{1,3}'}|sort -uni
а дальше, по конвейеру - хоть вывод в консоль, хоть вывод в файл... в зависимости от того, что требуется...

-------
scio me nihil scire. Ѫ


Отправлено: 12:24, 05-07-2023 | #14


Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Использовать nmap скрывая значек powershell с панели задач.
Результат записать в файл списком ip.
Так тоже не получилось:
Код: Выделить весь код
Start-Process -filepath 'C:\Program Files (x86)\Nmap\nmap' '-p 3389 --open -sV 77.40.0.0/17' 2>&1|?{$_ -match '([0-9]{1,3}\.){3}[0-9]{1,3}'}|sort -uni > 'C:\Users\Administrator\Documents\test.txt' -WindowStyle 'hidden'
Пишет:
Код: Выделить весь код
cannot be found that matches parameter name 'WindowStyle'

Последний раз редактировалось ts1000win, 05-07-2023 в 23:46.


Отправлено: 23:23, 05-07-2023 | #15


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата ts1000win:
Так тоже не получилось »
Вам бы поизучать powershell подробнее... что такое командлет, конвейер и их использование... а так у Вас вообще непонятно, что записано в строке...
Все параметры командлета пишутся ДО конвейера, а у Вас параметр "-WindowStyle 'hidden'" командлета Start-Process, указан в конце строки, после перенаправления потока вывода в файл... естественно, будет вызвано исключение.

Цитата ts1000win:
Использовать nmap скрывая значек powershell с панели задач. »
насколько я помню, всё равно, консольное окно будет мелькать, даже при скрытом запуске... для полного скрытия можно воспользоваться, например, скриптом VBS...
Ну, а так, чтобы выполнить команды в скрытом виде, для Вашей задачи, надо запускать так:
Код: Выделить весь код
powershell -window Hidden -f ".\script.ps1"
а в самом файле-скрипте (файл лучше записывать в кодировке UTF8 с BOM), уже указывать то, что требуется:
script.ps1:
Код: Выделить весь код
nmap -p 3389 --open -sV 77.40.0.0/17 2>&1|?{$_ -match '([0-9]{1,3}\.){3}[0-9]{1,3}'}|
sort -uni|out-file 'C:\Users\Administrator\Documents\test.txt' -enc 'utf8'

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 06-07-2023 в 09:15.


Отправлено: 09:05, 06-07-2023 | #16


Аватара для Pavel Nagaev

Пользователь


Сообщения: 136
Благодарности: 40

Профиль | Сайт | Отправить PM | Цитировать


А вообще вызывать внешние модули, потом парсить вывод PowerShell вообще идея не очень, может посмотрите модуль nmap под PowerShell?

https://github.com/JustinGrote/PoshNmap

Да и вот ещё неплохая статья Windows PowerShell built-in port scanner use

-------
Видео на русском про PowerShell
Крутые курсы по PowerShell


Последний раз редактировалось Pavel Nagaev, 06-07-2023 в 09:32.


Отправлено: 09:24, 06-07-2023 | #17


Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, так получилось сохранить результат
Цитата YuS_2:
Код: Выделить весь код
powershell -window Hidden -f ".\script.ps1" »
Цитата YuS_2:
Код: Выделить весь код
nmap -p 3389 --open -sV 77.40.0.0/17 2>&1|?{$_ -match '([0-9]{1,3}\.){3}[0-9]{1,3}'}|
sort -uni|out-file 'C:\Users\Administrator\Documents\test.txt' -enc 'utf8' »
Но в формате:
Код: Выделить весь код
Nmap scan report for 112.59.pppoe.mari-el.ru (77.40.59.112)
Nmap scan report for 125.86.pppoe.mari-el.ru (77.40.86.125)
В линукс:
Код: Выделить весь код
nmap -p 3389 --proxy --open -sV 171.98.128.0/17 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq > /home/kali/Inetcom2.txt
Сохранял список ip:
Код: Выделить весь код
77.40.59.112
77.40.86.125

Отправлено: 02:06, 07-07-2023 | #18


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1231
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата ts1000win:
Сохранял список ip: »
Код: Выделить весь код
(nmap -p 3389 --open -sV 77.40.0.0/17 2>&1|sls  -patt '([0-9]{1,3}\.){3}[0-9]{1,3}').matches.value|
 sort -uni|out-file 'C:\Users\Administrator\Documents\test.txt' -enc 'utf8'

-------
scio me nihil scire. Ѫ


Отправлено: 09:11, 07-07-2023 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - grep для PowerShell?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Реализация grep средствами powershell nwss Скриптовые языки администрирования Windows 10 17-01-2023 18:15
Поиск grep-ом blackeangel Программирование в *nix 4 24-02-2018 02:32
Прочее - grep - вытянуть телефоны masteralexey004 Общий по Linux 5 18-08-2012 10:58
Debian/Ubuntu - grep регулярное выражение Forpost Общий по Linux 3 25-05-2012 00:50
Прочее - grep регулярные выражения dogidogi Общий по Linux 8 28-05-2009 22:54




 
Переход