Enumerate COM classes using WMI


Quick and short way of enumerating COM classes is using the WMI class Win32_ClassicComClassSetting.



Get-WmiObject win32_ClassicComClassSetting | Select-Object ProgID | Group-Object ProgID | Select-Object Name | Sort-Object Name


Fun with Microsoft Agent and PowerShell

Show Merlin:

$agent = new-object -com Agent.Control.2
$agent.Connected = 1
$merlin = $agent.Characters.Character("Merlin")

List animations:



Activate animation:



Have Merlin tell when process was started:

Get-Process | select -First 10 | foreach {$merlin.Speak($_.ProcessName + " was started " + $_.StartTime) | out-null; Start-Sleep 5 }


Microsoft Agent is being deprecated and will not be included in future versions of the Windows operating system.