[Feature request] remove dependency on wmic & wsh from windows batch files
- Lingua principale
- Java
- Stelle
- 6.4k
- Fork
- 1.2k
- Merge medio
- 1g 23h
- PR unite (30g)
- 115
Descrizione
### 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!
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia individuando i file batch dell’ambiente Windows e le chiamate correnti a wmic e WSH. Confronta il rilevamento dei core della CPU e della memoria con il comportamento descritto per IotDBHWInfo.exe. Il lavoro è completato quando gli script dell’ambiente non dipendono più da wmic o WSH e IotDB può avviarsi nello scenario Windows 11 Sandbox descritto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, shell
- Ambito
- devops, operating-systems
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100