PowerShell - grep для PowerShell?

Аватара пользователя
ts1000win

Re: PowerShell - grep для 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
----                -------------         ------ ----
-a----         7/2/2023   6:32 PM             29 a.txt



Код:

Код: Выделить всё

get-content a.txt



Код:

Код: Выделить всё

git version 2.30.0.windows.2
Аватара пользователя
ts1000win

Re: PowerShell - grep для PowerShell?

Сообщение ts1000win »

Но использовать -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'

Изображение
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
Serguei Kouzmine

Re: PowerShell - grep для PowerShell?

Сообщение Serguei Kouzmine »

потому что надо читать документацию и узнать что match

это не флаг start-process а оператор типа string (вероятно реализован через методы расширения)

а argumenlist нoоaборт это флаг

кстати лоджен предупредить отстримить инпут в start-process наверное не выйдет никак

скажите плохо наверное тому живется кого в гугле забанили ?
Аватара пользователя
YuS_2

Re: PowerShell - grep для PowerShell?

Сообщение YuS_2 »

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

а дальше, по конвейеру - хоть вывод в консоль, хоть вывод в файл... в зависимости от того, что требуется...
Аватара пользователя
ts1000win

Re: PowerShell - grep для PowerShell?

Сообщение ts1000win »

Использовать 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'
Аватара пользователя
YuS_2

Re: PowerShell - grep для PowerShell?

Сообщение YuS_2 »

Цитата ts1000win:



Так тоже не получилось
PowerShell - grep для PowerShell?




Вам бы поизучать powershell подробнее... что такое командлет, конвейер и их использование... а так у Вас вообще непонятно, что записано в строке...

Все параметры командлета пишутся ДО конвейера, а у Вас параметр "-WindowStyle 'hidden'" командлета Start-Process, указан в конце строки, после перенаправления потока вывода в файл... естественно, будет вызвано исключение.




Цитата ts1000win:



Использовать nmap скрывая значек powershell с панели задач.
PowerShell - grep для 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'
Аватара пользователя
Pavel Nagaev

Re: PowerShell - grep для PowerShell?

Сообщение Pavel Nagaev »

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



https://github.com/JustinGrote/PoshNmap




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

Re: PowerShell - grep для PowerShell?

Сообщение ts1000win »

Да, так получилось сохранить результат


Цитата 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
Аватара пользователя
YuS_2

Re: PowerShell - grep для PowerShell?

Сообщение YuS_2 »

Цитата ts1000win:



Сохранял список ip:
PowerShell - grep для PowerShell?






Код:

Код: Выделить всё

(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'
Ответить

Вернуться в «Скриптовые языки администрирования Windows»