After searching the entire JDK source code, I found that WMIC is only used in four files. These WMIC calls can be replaced with PowerShell for WMI.
The primary challenge in this replacement is to make it work the same as before, even if the output format of the PowerShell command is different from the original WMIC output. Where necessary, I've adjusted the output formatting to maintain consistency. Regarding the PowerShell options `-NoLogo`, `-NoProfile`, and `-NonInteractive`, I've included them only when they are already used in the surrounding code within the affected file. Note: In my environment, it worked correctly even without these options. The `failure_handler` outputs powershell command execution results directly into HTML. While the number and order of output items may differ slightly after the modification, all previously output items are still included. Therefore, I believe this is not a problem. Specific output changes are located in: - `environment.html`: `windows/system/os` section - `process.html`: `[Process ID]/windows/native/info` section **Testing:** I have confirmed that all tests in `jdk/tools/jpackage` pass after these changes. ------------- Commit messages: - Use powershell instead of wmic Changes: https://git.openjdk.org/jdk/pull/24791/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24791&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8355249 Stats: 32 lines in 4 files changed: 6 ins; 2 del; 24 mod Patch: https://git.openjdk.org/jdk/pull/24791.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24791/head:pull/24791 PR: https://git.openjdk.org/jdk/pull/24791