If you weren’t already aware, using the Get-Member cmdlet is essential to understanding what you can do with PowerShell. Get-Member allows you to identify the members (properties, methods, events, etc.) that are available on the objects you are working with. What some people don’t realize with Get-Member however is that by default it does not identify all members that are available on the objects that are passed into it.
For example, let’s take a look at how you might use Get-Member to see what you can do with Win32_BIOS objects, like this:
Get-WmiObject Win32_BIOS | Get-Member
That command yields the following results:
TypeName: System.Management.ManagementObject#root\cimv2\Win32_BIOS
Name MemberType Definition
—- ———- ———-
BiosCharacteristics Property System.UInt16[] BiosCharacteristics {get;set;}
BIOSVersion Property System.String[] BIOSVersion {get;set;}
BuildNumber Property System.String BuildNumber {get;set;}
Caption Property System.String Caption {get;set;}
CodeSet Property System.String CodeSet {get;set;}
CurrentLanguage Property System.String CurrentLanguage {get;set;}
Description Property System.String Description {get;set;}
IdentificationCode Property System.String IdentificationCode {get;set;}
InstallableLanguages Property System.UInt16 InstallableLanguages {get;set;}
InstallDate Property System.String InstallDate {get;set;}
LanguageEdition Property System.String LanguageEdition {get;set;}
ListOfLanguages Property System.String[] ListOfLanguages {get;set;}
Manufacturer Property System.String Manufacturer {get;set;}
Name Property System.String Name {get;set;}
OtherTargetOS Property System.String OtherTargetOS {get;set;}
PrimaryBIOS Property System.Boolean PrimaryBIOS {get;set;}
ReleaseDate Property System.String ReleaseDate {get;set;}
SerialNumber Property System.String SerialNumber {get;set;}
SMBIOSBIOSVersion Property System.String SMBIOSBIOSVersion {get;set;}
SMBIOSMajorVersion Property System.UInt16 SMBIOSMajorVersion {get;set;}
SMBIOSMinorVersion Property System.UInt16 SMBIOSMinorVersion {get;set;}
SMBIOSPresent Property System.Boolean SMBIOSPresent {get;set;}
SoftwareElementID Property System.String SoftwareElementID {get;set;}
SoftwareElementState Property System.UInt16 SoftwareElementState {get;set;}
Status Property System.String Status {get;set;}
TargetOperatingSystem Property System.UInt16 TargetOperatingSystem {get;set;}
Version Property System.String Version {get;set;}
__CLASS Property System.String __CLASS {get;set;}
__DERIVATION Property System.String[] __DERIVATION {get;set;}
__DYNASTY Property System.String __DYNASTY {get;set;}
__GENUS Property System.Int32 __GENUS {get;set;}
__NAMESPACE Property System.String __NAMESPACE {get;set;}
__PATH Property System.String __PATH {get;set;}
__PROPERTY_COUNT Property System.Int32 __PROPERTY_COUNT {get;set;}
__RELPATH Property System.String __RELPATH {get;set;}
__SERVER Property System.String __SERVER {get;set;}
__SUPERCLASS Property System.String __SUPERCLASS {get;set;}
PSStatus PropertySet PSStatus {Status, Name, Caption, SMBIOSPresent}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
That’s a pretty good list of 40 members, but there are actually many more that you might like to see as well. For example, it can be useful to see the different member sets available on an object as well as any get_ and set_ methods that object has. You can see that information by using the –Force parameter with Get-Member. It can also be useful to see any hidden members that an object has, whether they come from the base member set, extended member set, or adapted member set. To see all of these hidden members, you can use the –View parameter and specify you want to see members from All views. When you put the –Force and –View parameters together, you end up with the following command:
Get-WmiObject Win32_BIOS | Get-Member -Force -View All
Running that command yields the following results:
TypeName: System.Management.ManagementObject#root\cimv2\Win32_BIOS
Name MemberType Definition
—- ———- ———-
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1[[System.String, mscorlib…
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs)
psadapted MemberSet psadapted {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY, __RELPATH, __P…
psbase MemberSet psbase {Scope, Path, Options, ClassPath, Properties, SystemPropertie…
psextended MemberSet psextended {ConvertToDateTime, ConvertFromDateTime, PSStatus}
psobject MemberSet psobject {Members, Properties, Methods, ImmediateBaseObject, BaseObj…
PSStandardMembers MemberSet PSStandardMembers {DefaultDisplayPropertySet}
add_Disposed Method System.Void add_Disposed(System.EventHandler value)
Clone Method System.Object Clone()
CompareTo Method bool CompareTo(System.Management.ManagementBaseObject otherObject, S…
CopyTo Method System.Management.ManagementPath CopyTo(System.Management.Management…
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Delete Method System.Void Delete(), System.Void Delete(System.Management.DeleteOpt…
Dispose Method System.Void Dispose()
Equals Method bool Equals(System.Object obj)
Get Method System.Void Get(), System.Void Get(System.Management.ManagementOpera…
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetMethodParameters Method System.Management.ManagementBaseObject GetMethodParameters(string me…
GetPropertyQualifierValue Method System.Object GetPropertyQualifierValue(string propertyName, string …
GetPropertyValue Method System.Object GetPropertyValue(string propertyName)
GetQualifierValue Method System.Object GetQualifierValue(string qualifierName)
GetRelated Method System.Management.ManagementObjectCollection GetRelated(), System.Ma…
GetRelationships Method System.Management.ManagementObjectCollection GetRelationships(), Sys…
GetText Method string GetText(System.Management.TextFormat format)
GetType Method type GetType()
get_ClassPath Method System.Management.ManagementPath get_ClassPath()
get_Container Method System.ComponentModel.IContainer get_Container()
get_Item Method System.Object get_Item(string propertyName)
get_Options Method System.Management.ObjectGetOptions get_Options()
get_Path Method System.Management.ManagementPath get_Path()
get_Properties Method System.Management.PropertyDataCollection get_Properties()
get_Qualifiers Method System.Management.QualifierDataCollection get_Qualifiers()
get_Scope Method System.Management.ManagementScope get_Scope()
get_Site Method System.ComponentModel.ISite get_Site()
get_SystemProperties Method System.Management.PropertyDataCollection get_SystemProperties()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
InvokeMethod Method System.Object InvokeMethod(string methodName, System.Object[] args),…
Put Method System.Management.ManagementPath Put(), System.Management.Management…
remove_Disposed Method System.Void remove_Disposed(System.EventHandler value)
SetPropertyQualifierValue Method System.Void SetPropertyQualifierValue(string propertyName, string qu…
SetPropertyValue Method System.Void SetPropertyValue(string propertyName, System.Object prop…
SetQualifierValue Method System.Void SetQualifierValue(string qualifierName, System.Object qu…
set_Item Method System.Void set_Item(string propertyName, System.Object value)
set_Options Method System.Void set_Options(System.Management.ObjectGetOptions value)
set_Path Method System.Void set_Path(System.Management.ManagementPath value)
set_Scope Method System.Void set_Scope(System.Management.ManagementScope value)
set_Site Method System.Void set_Site(System.ComponentModel.ISite value)
ToString Method string ToString()
Item ParameterizedProperty System.Object Item(string propertyName) {get;set;}
BiosCharacteristics Property System.UInt16[] BiosCharacteristics {get;set;}
BIOSVersion Property System.String[] BIOSVersion {get;set;}
BuildNumber Property System.String BuildNumber {get;set;}
Caption Property System.String Caption {get;set;}
ClassPath Property System.Management.ManagementPath ClassPath {get;}
CodeSet Property System.String CodeSet {get;set;}
Container Property System.ComponentModel.IContainer Container {get;}
CurrentLanguage Property System.String CurrentLanguage {get;set;}
Description Property System.String Description {get;set;}
IdentificationCode Property System.String IdentificationCode {get;set;}
InstallableLanguages Property System.UInt16 InstallableLanguages {get;set;}
InstallDate Property System.String InstallDate {get;set;}
LanguageEdition Property System.String LanguageEdition {get;set;}
ListOfLanguages Property System.String[] ListOfLanguages {get;set;}
Manufacturer Property System.String Manufacturer {get;set;}
Name Property System.String Name {get;set;}
Options Property System.Management.ObjectGetOptions Options {get;set;}
OtherTargetOS Property System.String OtherTargetOS {get;set;}
Path Property System.Management.ManagementPath Path {get;set;}
PrimaryBIOS Property System.Boolean PrimaryBIOS {get;set;}
Properties Property System.Management.PropertyDataCollection Properties {get;}
Qualifiers Property System.Management.QualifierDataCollection Qualifiers {get;}
ReleaseDate Property System.String ReleaseDate {get;set;}
Scope Property System.Management.ManagementScope Scope {get;set;}
SerialNumber Property System.String SerialNumber {get;set;}
Site Property System.ComponentModel.ISite Site {get;set;}
SMBIOSBIOSVersion Property System.String SMBIOSBIOSVersion {get;set;}
SMBIOSMajorVersion Property System.UInt16 SMBIOSMajorVersion {get;set;}
SMBIOSMinorVersion Property System.UInt16 SMBIOSMinorVersion {get;set;}
SMBIOSPresent Property System.Boolean SMBIOSPresent {get;set;}
SoftwareElementID Property System.String SoftwareElementID {get;set;}
SoftwareElementState Property System.UInt16 SoftwareElementState {get;set;}
Status Property System.String Status {get;set;}
SystemProperties Property System.Management.PropertyDataCollection SystemProperties {get;}
TargetOperatingSystem Property System.UInt16 TargetOperatingSystem {get;set;}
Version Property System.String Version {get;set;}
__CLASS Property System.String __CLASS {get;set;}
__DERIVATION Property System.String[] __DERIVATION {get;set;}
__DYNASTY Property System.String __DYNASTY {get;set;}
__GENUS Property System.Int32 __GENUS {get;set;}
__NAMESPACE Property System.String __NAMESPACE {get;set;}
__PATH Property System.String __PATH {get;set;}
__PROPERTY_COUNT Property System.Int32 __PROPERTY_COUNT {get;set;}
__RELPATH Property System.String __RELPATH {get;set;}
__SERVER Property System.String __SERVER {get;set;}
__SUPERCLASS Property System.String __SUPERCLASS {get;set;}
PSStatus PropertySet PSStatus {Status, Name, Caption, SMBIOSPresent}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
That result set shows 99 members, which is a lot more than the 40 members you get to see by default!
As you can see, there is a lot more to these objects than meets the eye. Using Get-Member with –Force and –View All is a great way to get all of the information you need about objects so that you really know what your objects contain and are capable of.
Kirk out.
Share this post : | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Nice. Thanks for the tip.