HindariPenggunaanWMICmdlet

Tingkat Keparahan : Peringatan

Status default: Selalu diaktifkan

Description

Aturan ini mendeteksi penggunaan cmdlet Windows Management Instrumentation (WMI). Sejak PowerShell 3.0, Anda harus menggunakan cmdlet Common Information Model (CIM) alih-alih cmdlet WMI. Cmdlet CIM mematuhi standar WS-Management (WSMan) dan standar CIM, yang memungkinkan pengelolaan sistem operasi Windows dan non-Windows.

Jangan gunakan cmdlet WMI ini:

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

Gunakan cmdlet CIM ini sebagai gantinya:

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

Example

Tidak sesuai

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

Sesuai

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

Mengonfigurasi aturan

Aturan ini selalu diaktifkan dan tidak dapat dikonfigurasi. Gunakan salah satu metode berikut untuk menghindari penggunaan aturan ini:

  • Buat file konfigurasi aturan kustom untuk hanya menyertakan aturan yang Anda inginkan atau kecualikan aturan yang tidak Anda inginkan.
  • Tambahkan atribut penekanan aturan yang sesuai ke kode Anda untuk menekan aturan untuk blok kode tertentu. Untuk informasi selengkapnya, lihat bagian Menekan aturanMenggunakan PSScriptAnalyzer.