Screensie
← All guides

Command Line

Advanced Legacy WMIC Queries and CIM Migration

Translate WMIC WHERE and GET expressions into supported PowerShell CIM filters.

Updated September 2, 2026Difficulty: AdvancedTime: 7 minApplies to: Windows, Windows 10, Windows 11

Follow the steps in order and stop if the screen or target does not match what is described. Use administrator access only when the task requires it.

Identify the old query

Example legacy intent: list automatically starting services that are not running.

Translate the filter

Use a provider-side CIM filter.

Command
Get-CimInstance Win32_Service -Filter "StartMode='Auto' AND State<>'Running'" | Select-Object Name, DisplayName, State, StartMode

Translate process queries

Request only the fields required by the task.

Command
Get-CimInstance Win32_Process -Filter "Name='notepad.exe'" -Property Name, ProcessId, ExecutablePath

Avoid string parsing

Use Where-Object, Select-Object, Export-Csv, or ConvertTo-Json with the returned objects.

Test behavior

Provider classes and permissions can vary. Test read-only queries on each target OS before automating changes.

Retire modifying WMIC calls

Do not mechanically translate delete, call, or set operations. Re-evaluate authorization, confirmation, rollback, and supported cmdlets first.