It does not matter if you are calling WMIC or PowerShell because both might be unavailable on the system. The point here is that I designed the utility so that the first crash of the native command should fallback to PING which is platform independent mechanism.
I downloaded the appliance `WinDev2407Eval.ova` and created VM in VirtualBox. It contains Microsoft Windows 11 Enterprise Evaluation. WMIC was officially deprecated in Windows 10, it should not be shipped with Windows 11 (22H2+) but the reality is different because my Windows 11 Enterprise Evaluation (22H2). PowerShell is not installed and enabled by default: `pwsh --version` ```'pwsh' is not recognized as an internal or external command, operable program or batch file.``` Windows 11 contains `tasklist.exe` but Windows XP Home does not have `tasklist.exe` binary installed but XP Professional contains tasklist. `$ wmicx process where ProcessId=3092` ```No Instance(s) Available. java.io.IOException: Cannot run program "wmicx": CreateProcess error=2, The system cannot find the file specified``` `$ tasklist /M /FI "pid eq 3093"` ```INFO: No tasks are running which match the specified criteria.``` `$ wmic process where ProcessId=3093` ProcessBuilder.waitFor() returns exit code 0 `$ tasklist /M /FI "pid eq 3092"` ```Image Name PID Modules ============ ============ svchost.exe 3092 N/A``` `$ wmic process where ProcessId=3092` ```Caption ProcessId svchost.exe 3092``` ProcessBuilder.waitFor() returns exit code 0 On Fri, Feb 13, 2026 at 10:42 PM Tibor Digaňa <[email protected]> wrote: > Actually, there is one more thing! Nobody said that. > The little tiny code was designed so, that, when either PS or WMIC fails, > then the PING is the fallback. > It's different when the command fails due to the process with the > particular PID does not exist, and it is different story when the WMIC or > PS itself has a serious system problem. > So, maybe it is wrong to start coding a fix if you do not have Windows. > First you must have experiences with this and understand what's going on. > The Forked JVM is immediately exited because the first check fails eagerly > and it could not fallback to the PING mechanism. > Most probably this is the problem. > > On Sat, Feb 7, 2026 at 1:21 AM Tibor Digaňa <[email protected]> > wrote: > >> Hi all, >> >> I would like to have your opinion regarding this issue reported on GitHub: >> "Surefire and Failsafe stop working on latest versions of Windows due to >> missing wmic" >> Please see the link here >> https://github.com/apache/maven-surefire/issues/3176 >> >> I am the author who developed the PPID Process Checker. When I worked on >> it together with Michael Osipov, we reached a consensus. It was a very nice >> personal collaboration, and now I would be glad to have this guy back in >> the active Maven Team again :-) >> That time we used Java 7 or Java 8, or even both, however Java 9 was >> available in the world. We could not use the Java 9 however it could really >> help us. Therefore we decided to call the system library "wmic" on Windows, >> and "ps" on *Nix world, and not Java 9. >> >> Due to the Microsoft Windows removed "wmic", I am open to move complete >> Surefire project under Java 9. >> >> I remember how problematic life it was when we had to support both Java 7 >> and Java 8 at the same time. I do not want to support two Java versions >> again. >> It would be easier for us to get a confidence from the Maven community >> and switch to Java 9 directly. >> I hope we would get an exception in the list of Maven plugins. >> >> BTW, One more remark. There are strengths to destroy this project. Let's >> ignore these strengths. We can prevent from this happening if we are >> positive and we are friendly working together. >> >> >> Cheers >> Tibor17 >> >
