تجنبUsingWMICmdlet

مستوى الخطورة : التحذير

Description

تكتشف هذه القاعدة استخدام أجهزة إدارة Windows Management Instrumentation (WMI). منذ PowerShell 3.0، يجب عليك استخدام cmdlets من نموذج المعلومات المشتركة (CIM) بدلا من CMDLETS WMI. تتوافق وحدات CMDLET في CIM مع معايير WS-Management (WSMan) ومعيار CIM، مما يتيح إدارة أنظمة التشغيل Windows وغير Windows.

لا تستخدم هذه الرموز الأساسية ل WMI:

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

استخدم هذه المقاطع المعتمدة من CIM بدلا من ذلك:

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

مثال

غير متوافق

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

متوافقه

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