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

Reply via email to