![]() |
grep для PowerShell?
В 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 |
Код:
(nmap -p 3389 --proxy --open -sV 171.98.128.0/17) -match '([0-9]{1,3}\.){3}[0-9]{1,3}' |sort -Unique > /home/kali/Inetcom2.txt |
А они установлены вообще grep, uniq и sort (.exe)? Если например установлен git или msys, то там есть эти утилиты, и надо папку с ними добавить в PATH. Тут подлянка от PS - куча алиасов замены, например sort, поэтому сразу лучше указывать .exe.
|
В современном виндоузе есть как алиас для Invoke-WebRequest (вызывается командой curl), так и сам curl (вызывается командой curl.exe).
|
Цитата:
|
у вас повершелл более старый
попробуйте Код:
write-output '127.0.0.1' | select-string -pattern '([0-9]{1,3}\.){3}[0-9]{1,3}' Код:
127.0.0.1 Код:
get-help select-string Код:
$result.Matches.Groups[2].Captures.Value |
Цитата:
Так чтобы в консоли было видно целиком команду и вывод. Цитата:
оператор "-match" в powershell живет от рождения... |
Цитата:
предположу наверное у @ts1000win возникли проблемы с редактированием сложных команд - пайп помогает с этим |
![]() |
вам же уже объясняли в другом топике ts1000win, что
надо агрументы передавать правильно например Код:
start-process -filepath "c:\Program Files\Git\bin\git.exe" -argumentlist "--version","2>&1" -RedirectStandardOutput a.txt -WindowStyle hidden Код:
dir a.txt Код:
Mode LastWriteTime Length Name Код:
get-content a.txt Код:
git version 2.30.0.windows.2 |
ts1000win, да, понятно, спасибо.
Это просто неверное использование оператора, т.е. Вы использовали оператор в качестве параметра командлета Start-Process, на что вполне резонно, выдано соответствующее сообщение. |
Вложений: 1
Но использовать -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' ![]() |
потому что надо читать документацию и узнать что match
это не флаг start-process а оператор типа string (вероятно реализован через методы расширения) а argumenlist нoоaборт это флаг кстати лоджен предупредить отстримить инпут в start-process наверное не выйдет никак скажите плохо наверное тому живется кого в гугле забанили ? |
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 |
Использовать 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' |
Цитата:
Все параметры командлета пишутся ДО конвейера, а у Вас параметр "-WindowStyle 'hidden'" командлета Start-Process, указан в конце строки, после перенаправления потока вывода в файл... естественно, будет вызвано исключение. Цитата:
Ну, а так, чтобы выполнить команды в скрытом виде, для Вашей задачи, надо запускать так: Код:
powershell -window Hidden -f ".\script.ps1" script.ps1: Код:
nmap -p 3389 --open -sV 77.40.0.0/17 2>&1|?{$_ -match '([0-9]{1,3}\.){3}[0-9]{1,3}'}| |
А вообще вызывать внешние модули, потом парсить вывод PowerShell вообще идея не очень, может посмотрите модуль nmap под PowerShell?
https://github.com/JustinGrote/PoshNmap Да и вот ещё неплохая статья Windows PowerShell built-in port scanner use |
Да, так получилось сохранить результат
Цитата:
Цитата:
Код:
Nmap scan report for 112.59.pppoe.mari-el.ru (77.40.59.112) Код:
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 Код:
77.40.59.112 |
Цитата:
Код:
(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| |
Время: 20:37. |
Время: 20:37.
© OSzone.net 2001-