[Feature request] remove dependency on wmic & wsh from windows batch files
- Lenguaje dominante
- Java
- Estrellas
- 6.4k
- Forks
- 1.2k
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 115
Descripción
### 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!
Guía de contribución
Línea de trabajo
Comienza localizando los archivos batch del entorno de Windows y las llamadas actuales a wmic y WSH. Compara su detección de núcleos de CPU y memoria con el comportamiento descrito para IotDBHWInfo.exe. Se considera terminado cuando los scripts del entorno ya no dependan de wmic ni de WSH y IotDB pueda iniciarse en el escenario de Windows 11 Sandbox descrito.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp, shell
- Área
- devops, operating-systems
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100