BornToBeRoot / PowerShell_IPv4PortScanner

Powerful asynchronus IPv4 port scanner for PowerShell
GNU General Public License v2.0
221 stars 53 forks source link

[Feature Request] Catch Exception from calling EndInvoke and recommend/dynamically reducing Threads #5

Open Acters opened 1 month ago

Acters commented 1 month ago

This is a feature request to add dynamic Thread reduction when EndInvoke function causes any kind of exception. Otherwise, exit early with a message to recommend for the -Threads parameter to be used.

Specifically this error that I ran into because the default 500 threads is too high for my virtual lab:

Exception calling "EndInvoke" with "1" argument(s): "Thread failed to start."
At C:\temp\IPv4PortScan.ps1:260 char:13
+             $Job_Result = $Job.Pipe.EndInvoke($Job.Result)
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ThreadStartException

Exception calling "EndInvoke" with "1" argument(s): "Thread is running or terminated; it cannot restart."
BornToBeRoot commented 1 month ago

Hi @Acters,

you can reduce the number of threads by using -Threads 256 (or any other number).

PRs are welcome to improve this script.