porta microsoft management powershell cmd powershell-v2.0 nmap

powershell - microsoft - MĂșltiples procesos recurrentes



porta azure (1)

Bueno, a menos que haya alguna razón específica por la que está lanzando CMD (como la necesidad de ver el resultado), le recomendaría usar trabajos en su lugar. Son fáciles de administrar y probar si todavía están funcionando.

$jobs = @() $sx = ''192.168.1.0/24'', ''range2'', ''etc'' For ($i = 0; $i -lt $sx.Length; $i++) { $jobs += Start-Job { nmap.exe -Pn -sX $sx[i] } } while ($true) { For ($i = 0; $i -lt $sx.Length; $i++) { if ($jobs[i].State -eq "Completed" { Write-Output ("Completed job for " + $sx[i]) Receive-Job $jobs[i] $jobs[i] = Start-Job { nmap.exe -Pn -sX $sx[i] } } } Start-Sleep -s 5 }

Estoy probando algunos dominios y su capacidad para alertarme cuando ocurre un evento anormal. Estoy usando nmap para escanear dominios para puertos abiertos. El siguiente script abre una nueva ventana de cmd y ejecuta nmap. Busco el ID del proceso y verifico si el proceso (cmd) aún se está ejecutando. Una vez que finaliza el escaneo, ejecutará el escaneo nmap nuevamente.

function nmaptest { $prog1="cmd" $params1=@("/C";"nmap.exe -Pn -sX 192.168.1.0/24") Start-Process -Verb runas $prog1 $params1 #starts } while(1 -eq 1){ nmaptest $processes = get-process $prog1 | out-string $sp = $processes.Split('' '',[System.StringSplitOptions]::RemoveEmptyEntries) $procid = $sp[22] echo $procid while(get-process -id $procid){ } }

Esto funciona bien Lo que necesito ayuda es hacer este proceso 8 veces en paralelo. (si eso es posible)