AvoidUsingWMICmdlet

ernstniveau: waarschuwing

Beschrijving

Deze regel detecteert het gebruik van Windows Management Instrumentation (WMI) cmdlets. Sinds PowerShell 3.0 zou je Common Information Model (CIM) cmdlets moeten gebruiken in plaats van WMI-cmdlets. CIM-cmdlets voldoen aan WS-Management (WSMan) standaarden en de CIM-standaard, die het beheer van Windows en niet-Windows besturingssystemen mogelijk maakt.

Gebruik deze WMI-cmdlets niet:

  • Get-WmiObject
  • Remove-WmiObject
  • Invoke-WmiMethod
  • Register-WmiEvent
  • Set-WmiInstance

Gebruik in plaats daarvan deze CIM-cmdlets:

  • Get-CimInstance
  • Remove-CimInstance
  • Invoke-CimMethod
  • Register-CimIndicationEvent
  • Set-CimInstance

Voorbeeld

Niet conform

Get-WmiObject -Query 'Select * from Win32_Process where name LIKE "myprocess%"' | Remove-WmiObject
Invoke-WmiMethod -Class Win32_Process -Name 'Create' -ArgumentList @{ CommandLine = 'notepad.exe' }

Compliant

Get-CimInstance -Query 'Select * from Win32_Process where name LIKE "myprocess%"' | Remove-CimInstance
Invoke-CimMethod -ClassName Win32_Process -MethodName 'Create' -Arguments @{ CommandLine = 'notepad.exe' }