Windows, Microsoft abbandona WMIC per PowerShell: cosa significa

Microsoft decide di accantonare l'utilità WMIC: presto sarà rimossa da Windows 11 e Windows 10. Quali possono essere le motivazioni alla base di questa scelta.

Acronimo di Windows Management Instrumentation Command (WMIC) è uno strumento che gli amministratori IT conoscono bene.
Integrata in Windows, l’utilità WMIC consente di raccogliere informazioni sullo stato del sistema operativo e dell’hardware, svolgere attività di gestione, richiedere modifiche sulla configurazione della macchina, eseguire altri comandi e programmi.

Microsoft ha annunciato l’anno scorso che in Windows Server WMIC sarebbe stato abbandonato in favore di PowerShell.
La novità è che nell’ultima versione di anteprima di Windows 11 il comando WMIC è sparito del tutto a conferma che l’azienda di Redmond intende abbandonare questo strumento in ogni versione del sistema operativo, anche quelle usate sui client.

In un documento di supporto Microsoft aggiunge inoltre che l’utilizzo di WMIC è sconsigliato a partire da Windows 10 21H1 e che d’ora in avanti è bene ricorrere unicamente a PowerShell che abbiamo presentato per esempi in un altro nostro articolo.

Secondo quanto riportano altre testate ad aver spinto Microsoft alla rimozione di WMIC vi sarebbero fondamentalmente motivazioni legate alla sicurezza: sono tanti i malware che si servono di script e comandi WMIC per raccogliere informazioni sulla configurazione del sistema, cancellare le copie shadow per recuperare dati (lo fanno i ransomware), per sapere quali antimalware sono installati sulla macchina e per disporne la disinstallazione o la disattivazione automatica.

Tutto questo e altro ancora si può fare con semplici script WMIC che d’ora in avanti, vista la decisione di Microsoft, potrebbero non funzionare più.
Il fatto è che la vita non viene complicata soltanto ai malware writer ma anche agli amministratori di sistema che storicamente hanno sempre utilizzato comandi WMIC.

D’altra parte ciò che si può fare con WMIC si fa anche usando cmdlet PowerShell: questo documento di supporto riassume la sintassi utilizzabile. La decisione è quindi più verosimilmente riconducibile al fatto che Microsoft voglia prioritizzare l’utilizzo di script PowerShell.

Qualche esempio? Il comando seguente, eseguito da una finestra PowerShell (premere Windows+X) oppure da una scheda PowerShell di Windows Terminal, consente di estrarre istantaneamente tutta una serie di informazioni sulla configurazione del dispositivo in uso senza ricorrere a WMIC:

Get-CimInstance -ClassName Win32_OperatingSystem | Format-List -Property *

Il comando che segue consente di estrapolare l’elenco dei servizi di sistema che hanno il prefisso win insieme con il loro stato e i relativi dettagli:

Get-CimInstance -Query "SELECT * from Win32_Service WHERE name LIKE 'win%'"

Digitando Get-CimInstance -ClassName Win32_UserAccount si ottengono informazioni sugli account utente presenti sulla macchina mentre Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct mostra i dati relativi all’antivirus in uso.

Pochi esempi per dire che con PowerShell è possibile effettuare qualunque tipo di interrogazione e di modifica sul sistema Windows, anche in modalità remota con PsExec oppure con Windows Remote Management (WinRM).

Ti consigliamo anche

Link copiato negli appunti