[Feature request] remove dependency on wmic & wsh from windows batch files
- Dominant language
- Java
- Stars
- 6.4k
- Forks
- 1.2k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 115
Description
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.
### Motivation
Hello team, I am building an installer for IotDB so that I can distribte IotDB with a solution I develop. The installer deploys IotDB as a windows service.
During my testing I have discovered that;
1. The env scripts are using wmic which is deprecated and is an optional feature on Windows 10/11 (https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features)
2. The env script are using WSH which is not desirable. Windows Scripting host is blocked on many customer sites and is not good practise on Windows.
To add to this, I am testing in the Windows 11 Sandbox which does not allow you to enable the wmic feature anyway so IotDB would never start successfully.
To work around this I have developed a small C# console app to return the number of cores and memory in megabytes
https://github.com/ope-nz/IotDBHWInfo
In the env batch files I have replaced the cores/memory determination with these lines;
for /f %%A in ('..\tools\IotDBHWInfo.exe -cores') do set "system_cpu_cores=%%A"
echo CORES %system_cpu_cores%
for /f %%A in ('..\tools\IotDBHWInfo.exe -memory') do set "system_memory_in_mb=%%A"
echo SYSTEM MEMORY %system_memory_in_mb%
### Solution
Develop alternate solution to using wmic/wsh such as console app show above
### Alternatives
Use https://github.com/ope-nz/IotDBHWInfo
Update env batch files with
for /f %%A in ('..\tools\IotDBHWInfo.exe -cores') do set "system_cpu_cores=%%A"
echo CORES %system_cpu_cores%
for /f %%A in ('..\tools\IotDBHWInfo.exe -memory') do set "system_memory_in_mb=%%A"
echo SYSTEM MEMORY %system_memory_in_mb%
### Are you willing to submit a PR?
- [X] I'm willing to submit a PR!
Contributor guide
Research direction
Start by locating the Windows environment batch files and the current wmic and WSH calls. Compare their CPU-core and memory detection with the behavior described for IotDBHWInfo.exe. Done means the environment scripts no longer depend on wmic or WSH and IotDB can start in the reported Windows 11 Sandbox scenario.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, shell
- Domain
- devops, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100