Skip to Content
Professional Windows® PowerShell
book

Professional Windows® PowerShell

by Andrew Watt
April 2007
Intermediate to advanced
551 pages
12h 9m
English
Wrox
Content preview from Professional Windows® PowerShell

13.3. Using Synthetic Types

The .NET type system that Windows PowerShell uses is extensible. This extensibility is directly relevant to how Windows PowerShell handles COM objects.

All COM objects have the same type, System._ComObject, in a .NET Framework setting. That causes potential problems for Windows PowerShell in distinguishing one COM object from another, since although all COM objects have the System._ComObject type, there is a huge variety of underlying functionality and a large range of members of individual object instances. If you can't unambiguously identify the kind of object you are dealing with, it makes writing code to use methods or access or manipulate properties highly problematic. To resolve that ambiguity, when creating a COM object Windows, PowerShell creates a synthetic type that uses the common System._ComObject type and adds a # to it followed by the Class ID stored in the registry for the relevant class.

The following example displays the synthetic type for Internet Explorer. Create a new instance of Internet Explorer, using the command:

$ie = new-object -ComObject InternetExplorer.application

Then use the following command to display the members of the $ie object:

$ie |
get-member

A lengthy list of members is displayed, but before those the synthetic type, which refers to the registry class for Internet Explorer, is displayed. Figure 13-14 shows the synthetic type for Internet Explorer. It is displayed as System._ComObject#{d30c1661-cdaf-11d0-8a3e-00c04fc9e26e} ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Powershell Core 6.2 Cookbook

Powershell Core 6.2 Cookbook

Jan-Hendrik Peters

Publisher Resources

ISBN: 9780471946939Purchase book