AvoidUsingWMICmdlet

súlyossági szint: Figyelmeztetési

Description

Ez a szabály felismeri a Windows Management Instrumentation (WMI) parancsnokok használatát. A PowerShell 3.0 óta a WMI cmdletek helyett Common Information Model (CIM) cmdleteket kell használni. A CIM cmdlet-ek megfelelnek a WS-Management (WSMan) szabványainak és a CIM szabványnak, amely lehetővé teszi a Windows és nem Windows operációs rendszerek kezelését.

Ne használd ezeket a WMI cmdleteket:

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

Használd ezeket a CIM cmdleteket helyette:

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

Example

Nem megfelelő

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

Megfelelő

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