A Component Object Model (COM) a komponens alapú rendszerek fejlesztésének Microsoft féle szabványa. Lehetővé teszi, hogy a COM-ügyfelek bináris szinten hívjanak meg olyan függvényeket, amelyeket a COM-objektumok számukra elérhetővé tesznek. A COM-objektumok mindegyike egyedileg azonosítható, önálló komponens, a különféle alkalmazások, és más komponensek egy jól meghatározott csatolófelületen keresztül vehetik igénybe az adott komponens szolgáltatásait.
A Microsoft is COM-komponensekkel tette lehetővé a hozzáférést az operációs rendszer függvényeihez, így a rendszerfelügyelettel kapcsolatos szkriptek igen jelentős része használ COM-objektumokat; segítségükkel érhetjük el a rendszer különféle elemeit, újrahasznosíthatjuk a már létező, előre megírt funkciókat. PowerShell esetén gyakran még akkor is COM-objektumot használunk, amikor látszólag nem, mivel a .NET rendszerfelügyelettel kapcsolatos osztályainak legtöbbje titokban szintén a megfelelő COM-objektum metódusait hívogatja (ADSI, WMI, stb.).
A szkriptjeinkben használt COM-objektumok mindegyike tehát olyan funkcionalitás-gyűjtemény, amelyet gondos kezek előre elkészítettek, és jól felhasználható formában összecsomagoltak számunkra. Ezek az objektumok szinte minden esetben bináris formában léteznek, gépünkön egy dinamikusan csatolt könyvtár (dll), vagy Active-X kontroll (ocx) képében találhatók meg. Szerencsére a COM-objektumok belső felépítéséről, adatszerkezeteiről semmit nem kell tudnunk ahhoz, hogy megírhassuk a velük kommunikáló szkriptet, és felhasználhassuk a bennük rejtőző képességeket. Az objektumokkal való kommunikáció metódusaik meghívását és tulajdonságaik beállítását jelenti; a rendszerfelügyeleti szkriptek legfontosabb funkciói ilyen módon valósíthatók meg.