Typically, to access COM objects, these objects need to register themselves in the Windows Registry, and PowerShell needs the registered ProgID string to load the object.
Here is an example:
$object = New-Object -ComObject Scripting.FileSystemObject $object.Drives
Instead of using New-Object, you can also use .NET methods to achieve the same:
$type = [Type]::GetTypeFromProgID('Scripting.FileSystemObject') $object = [Activator]::CreateInstance($type) $object.Drives
With the latter approach, you can even instantiate COM object that do not expose their ProgID. All you need is the GUID:
$clsid = New-Object Guid '0D43FE01-F093-11CF-8940-00A0C9054228' $type = [Type]::GetTypeFromCLSID($clsid) $object = [Activator]::CreateInstance($type) $object.Drives