Methods
Win32_1394Controller has no methods. Inherited methods (Reset and SetPowerState) are not implemented.
Properties
Win32_1394Controller returns 22 properties:
'Availability','ConfigManagerErrorCode','ConfigManagerUserConfig',
'CreationClassName','Description','DeviceID','ErrorCleared','ErrorDescription','InstallDate',
'LastErrorCode','Manufacturer','MaxNumberControlled','Name','PNPDeviceID',
'PowerManagementCapabilities','PowerManagementSupported','ProtocolSupported','Status','StatusInfo',
'SystemCreationClassName','SystemName','TimeOfLastReset'
Unless explicitly marked as WRITEABLE, all properties are read-only.
Availability
Availability and status of the device.
Availability returns a numeric value. To translate it into a meaningful text, use any of the following approaches:
Use Update-Type
Update-Type
tells PowerShell how to interpret the property. This command needs to be executed only once per PowerShell session:
Update-TypeData -MemberName Availability -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumAvailability
{
Other = 1
Unknown = 2
RunningFull_Power = 3
Warning = 4
In_Test = 5
Not_Applicable = 6
Power_Off = 7
Off_Line = 8
Off_Duty = 9
Degraded = 10
Not_Installed = 11
Install_Error = 12
Power_Save_Unknown = 13
Power_Save_Low_Power_Mode = 14
Power_Save_Standby = 15
Power_Cycle = 16
Power_Save_Warning = 17
Paused = 18
Not_Ready = 19
Not_Configured = 20
Quiesced = 21
}
[EnumAvailability]($this.PSBase.CimInstanceProperties['Availability'].Value)
} -Force
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Availability
Use Select-Object
Select-Object
supports calculated properties. When you submit a hashtable, PowerShell dynamically calculates the result:
$Availability = @{
Name = 'AvailabilityText'
Expression = {
$value = $_.Availability
switch([int]$value)
{
1 {'Other'}
2 {'Unknown'}
3 {'Running/Full Power'}
4 {'Warning'}
5 {'In Test'}
6 {'Not Applicable'}
7 {'Power Off'}
8 {'Off Line'}
9 {'Off Duty'}
10 {'Degraded'}
11 {'Not Installed'}
12 {'Install Error'}
13 {'Power Save - Unknown'}
14 {'Power Save - Low Power Mode'}
15 {'Power Save - Standby'}
16 {'Power Cycle'}
17 {'Power Save - Warning'}
18 {'Paused'}
19 {'Not Ready'}
20 {'Not Configured'}
21 {'Quiesced'}
default {"$value"}
}
}
}
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Availability, $Availability
Use a PowerShell Hashtable
You can use a PowerShell hashtable to decode numeric values. Use a hashtable like this one:
$Availability_map = @{
1 = 'Other'
2 = 'Unknown'
3 = 'Running/Full Power'
4 = 'Warning'
5 = 'In Test'
6 = 'Not Applicable'
7 = 'Power Off'
8 = 'Off Line'
9 = 'Off Duty'
10 = 'Degraded'
11 = 'Not Installed'
12 = 'Install Error'
13 = 'Power Save - Unknown'
14 = 'Power Save - Low Power Mode'
15 = 'Power Save - Standby'
16 = 'Power Cycle'
17 = 'Power Save - Warning'
18 = 'Paused'
19 = 'Not Ready'
20 = 'Not Configured'
21 = 'Quiesced'
}
Use Enum structure
You can cast the raw property values to a new enum type to translate raw numeric values into friendly text. Use an enum like this one:
Enum EnumAvailability
{
Other = 1
Unknown = 2
RunningFull_Power = 3
Warning = 4
In_Test = 5
Not_Applicable = 6
Power_Off = 7
Off_Line = 8
Off_Duty = 9
Degraded = 10
Not_Installed = 11
Install_Error = 12
Power_Save_Unknown = 13
Power_Save_Low_Power_Mode = 14
Power_Save_Standby = 15
Power_Cycle = 16
Power_Save_Warning = 17
Paused = 18
Not_Ready = 19
Not_Configured = 20
Quiesced = 21
}
ConfigManagerErrorCode
Win32 Configuration Manager error code.
ConfigManagerErrorCode returns a numeric value. To translate it into a meaningful text, use any of the following approaches:
Use Update-Type
Update-Type
tells PowerShell how to interpret the property. This command needs to be executed only once per PowerShell session:
Update-TypeData -MemberName ConfigManagerErrorCode -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumConfigManagerErrorCode
{
OK = 0
CONFIG_ERROR = 1
CANNOT_LOAD_DRIVER = 2
LOW_MEMORY = 3
REGISTRY_CORRUPTED = 4
MANAGED_RESOURCE_MISSING = 5
BOOT_CONFIG_CONFLICT = 6
CANNOT_FILTER = 7
DRIVER_LOADER_MISSING = 8
FIRMWARE_RESOURCE_PROBLEM = 9
DEVICE_CANNOT_START = 10
DEVICE_FAILED = 11
NOT_ENOUGH_FREE_RESOURCES = 12
CANNOT_VERIFY_RESOURCES = 13
RESTART_REQUIRED = 14
REENUMERATION_PROBLEM = 15
CANNOT_IDENTIFY_RESOURCE = 16
UNKNOWN_RESOURCE_TYPE = 17
REINSTALL_DRIVERS = 18
VXD_LOADER_FAILURE = 19
REGISTRY_CORRUPTION = 20
DEVICE_REMOVED_DUE_TO_ERROR = 21
DEVICE_DISABLED = 22
SYSTEM_FAILURE = 23
DEVICE_NOT_PRESENT = 24
DEVICE_SETUP_IN_PROGRESS = 25
DEVICE_BEING_INSTALLED = 26
NO_VALID_LOG_CONFIG = 27
DRIVERS_MISSING = 28
DEVICE_DISABLED_MISSING_RESOURCES = 29
IRQ_CONFLICT = 30
DRIVER_NOT_LOADED = 31
}
[EnumConfigManagerErrorCode]($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)
} -Force
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, ConfigManagerErrorCode
Use Select-Object
Select-Object
supports calculated properties. When you submit a hashtable, PowerShell dynamically calculates the result:
$ConfigManagerErrorCode = @{
Name = 'ConfigManagerErrorCodeText'
Expression = {
$value = $_.ConfigManagerErrorCode
switch([int]$value)
{
0 {'OK'}
1 {'CONFIG_ERROR'}
2 {'CANNOT_LOAD_DRIVER'}
3 {'LOW_MEMORY'}
4 {'REGISTRY_CORRUPTED'}
5 {'MANAGED_RESOURCE_MISSING'}
6 {'BOOT_CONFIG_CONFLICT'}
7 {'CANNOT_FILTER'}
8 {'DRIVER_LOADER_MISSING'}
9 {'FIRMWARE_RESOURCE_PROBLEM'}
10 {'DEVICE_CANNOT_START'}
11 {'DEVICE_FAILED'}
12 {'NOT_ENOUGH_FREE_RESOURCES'}
13 {'CANNOT_VERIFY_RESOURCES'}
14 {'RESTART_REQUIRED'}
15 {'REENUMERATION_PROBLEM'}
16 {'CANNOT_IDENTIFY_RESOURCE'}
17 {'UNKNOWN_RESOURCE_TYPE'}
18 {'REINSTALL_DRIVERS'}
19 {'VXD_LOADER_FAILURE'}
20 {'REGISTRY_CORRUPTION'}
21 {'DEVICE_REMOVED_DUE_TO_ERROR'}
22 {'DEVICE_DISABLED'}
23 {'SYSTEM_FAILURE'}
24 {'DEVICE_NOT_PRESENT'}
25 {'DEVICE_SETUP_IN_PROGRESS'}
26 {'DEVICE_BEING_INSTALLED'}
27 {'NO_VALID_LOG_CONFIG'}
28 {'DRIVERS_MISSING'}
29 {'DEVICE_DISABLED_MISSING_RESOURCES'}
30 {'IRQ_CONFLICT'}
31 {'DRIVER_NOT_LOADED'}
default {"$value"}
}
}
}
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, ConfigManagerErrorCode, $ConfigManagerErrorCode
Use a PowerShell Hashtable
You can use a PowerShell hashtable to decode numeric values. Use a hashtable like this one:
$ConfigManagerErrorCode_map = @{
0 = 'OK'
1 = 'CONFIG_ERROR'
2 = 'CANNOT_LOAD_DRIVER'
3 = 'LOW_MEMORY'
4 = 'REGISTRY_CORRUPTED'
5 = 'MANAGED_RESOURCE_MISSING'
6 = 'BOOT_CONFIG_CONFLICT'
7 = 'CANNOT_FILTER'
8 = 'DRIVER_LOADER_MISSING'
9 = 'FIRMWARE_RESOURCE_PROBLEM'
10 = 'DEVICE_CANNOT_START'
11 = 'DEVICE_FAILED'
12 = 'NOT_ENOUGH_FREE_RESOURCES'
13 = 'CANNOT_VERIFY_RESOURCES'
14 = 'RESTART_REQUIRED'
15 = 'REENUMERATION_PROBLEM'
16 = 'CANNOT_IDENTIFY_RESOURCE'
17 = 'UNKNOWN_RESOURCE_TYPE'
18 = 'REINSTALL_DRIVERS'
19 = 'VXD_LOADER_FAILURE'
20 = 'REGISTRY_CORRUPTION'
21 = 'DEVICE_REMOVED_DUE_TO_ERROR'
22 = 'DEVICE_DISABLED'
23 = 'SYSTEM_FAILURE'
24 = 'DEVICE_NOT_PRESENT'
25 = 'DEVICE_SETUP_IN_PROGRESS'
26 = 'DEVICE_BEING_INSTALLED'
27 = 'NO_VALID_LOG_CONFIG'
28 = 'DRIVERS_MISSING'
29 = 'DEVICE_DISABLED_MISSING_RESOURCES'
30 = 'IRQ_CONFLICT'
31 = 'DRIVER_NOT_LOADED'
}
Use Enum structure
You can cast the raw property values to a new enum type to translate raw numeric values into friendly text. Use an enum like this one:
Enum EnumConfigManagerErrorCode
{
OK = 0
CONFIG_ERROR = 1
CANNOT_LOAD_DRIVER = 2
LOW_MEMORY = 3
REGISTRY_CORRUPTED = 4
MANAGED_RESOURCE_MISSING = 5
BOOT_CONFIG_CONFLICT = 6
CANNOT_FILTER = 7
DRIVER_LOADER_MISSING = 8
FIRMWARE_RESOURCE_PROBLEM = 9
DEVICE_CANNOT_START = 10
DEVICE_FAILED = 11
NOT_ENOUGH_FREE_RESOURCES = 12
CANNOT_VERIFY_RESOURCES = 13
RESTART_REQUIRED = 14
REENUMERATION_PROBLEM = 15
CANNOT_IDENTIFY_RESOURCE = 16
UNKNOWN_RESOURCE_TYPE = 17
REINSTALL_DRIVERS = 18
VXD_LOADER_FAILURE = 19
REGISTRY_CORRUPTION = 20
DEVICE_REMOVED_DUE_TO_ERROR = 21
DEVICE_DISABLED = 22
SYSTEM_FAILURE = 23
DEVICE_NOT_PRESENT = 24
DEVICE_SETUP_IN_PROGRESS = 25
DEVICE_BEING_INSTALLED = 26
NO_VALID_LOG_CONFIG = 27
DRIVERS_MISSING = 28
DEVICE_DISABLED_MISSING_RESOURCES = 29
IRQ_CONFLICT = 30
DRIVER_NOT_LOADED = 31
}
ConfigManagerUserConfig
If $true
, the device is using a user-defined configuration.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, ConfigManagerUserConfig
# filtering all instances with ConfigManagerUserConfig set to $true:
Get-CimInstance -ClassName Win32_1394Controller | Where-Object ConfigManagerUserConfig -eq $true | Select-Object -Property DeviceID, ConfigManagerUserConfig
CreationClassName
Name of the first concrete class to appear in the inheritance chain used in the creation of an instance. When used with the other key properties of the class, the property allows all instances of this class and its subclasses to be uniquely identified.
Description
Description of the object.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Description
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Description | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.Description
"${DeviceID}: Description = $value"
}
DeviceID
Unique identifier of this controller.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, DeviceID | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.DeviceID
"${DeviceID}: DeviceID = $value"
}
ErrorCleared
If $true
, the error reported in LastErrorCode is now cleared.
ErrorDescription
More information about the error recorded in LastErrorCode, and information on any corrective actions that may be taken.
InstallDate
Date and time the object was installed. This property does not need a value to indicate that the object is installed.
LastErrorCode
Last error code reported by the logical device.
Manufacturer
Manufacturer of the controller.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Manufacturer
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Manufacturer | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.Manufacturer
"${DeviceID}: Manufacturer = $value"
}
MaxNumberControlled
Maximum number of directly addressable entities supportable by this controller. A value of 0 (zero) should be used if the number is unknown.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, MaxNumberControlled
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, MaxNumberControlled | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.MaxNumberControlled
"${DeviceID}: MaxNumberControlled = $value"
}
Name
Label by which the object is known. When subclassed, the property can be overridden to be a key property.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Name
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Name | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.Name
"${DeviceID}: Name = $value"
}
PNPDeviceID
Windows Plug and Play device identifier of the logical device.
Example: “*PNP030b”
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, PNPDeviceID
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, PNPDeviceID | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.PNPDeviceID
"${DeviceID}: PNPDeviceID = $value"
}
PowerManagementCapabilities
Array of the specific power-related capabilities of a logical device.
This property is inherited and typically empty.
PowerManagementSupported
If $true, device can be power-managed, for example, a device can be put into suspend mode, and so on. This property does not indicate that power management features are enabled currently, but it does indicate that the logical device is capable of power management.
This property is inherited and typically empty.
ProtocolSupported
Protocol used by the controller to access “controlled” devices.
ProtocolSupported returns a numeric value. To translate it into a meaningful text, use any of the following approaches:
Use Update-Type
Update-Type
tells PowerShell how to interpret the property. This command needs to be executed only once per PowerShell session:
Update-TypeData -MemberName ProtocolSupported -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumProtocolSupported
{
Other = 1
Unknown = 2
EISA = 3
ISA = 4
PCI = 5
ATAATAPI = 6
Flexible_Diskette = 7
Mode1496 = 8
SCSI_Parallel_Interface = 9
SCSI_Fibre_Channel_Protocol = 10
SCSI_Serial_Bus_Protocol = 11
SCSI_Serial_Storage_Architecture = 13
VESA = 14
PCMCIA = 15
Universal_Serial_Bus = 16
Parallel_Protocol = 17
ESCON = 18
Diagnostic = 19
I2C = 20
Power = 21
HIPPI = 22
MultiBus = 23
VME = 24
IPI = 25
IEEE_488 = 26
RS232 = 27
IEEE_8023_10BASE5 = 28
IEEE_8023_10BASE2 = 29
IEEE_8023_1BASE5 = 30
IEEE_8023_10BROAD36 = 31
IEEE_8023_100BASEVG = 32
IEEE_8025_Token_Ring = 33
ANSI_X3T95_FDDI = 34
MCA = 35
ESDI = 36
IDE = 37
CMD = 38
ST506 = 39
DSSI = 40
QIC2 = 41
Enhanced_ATAIDE = 42
AGP = 43
TWIRP_two_way_infrared = 44
FIR_fast_infrared = 45
SIR_serial_infrared = 46
IrBus = 47
SCSI_Serial_Bus_Protocol_2 = 1394
}
[EnumProtocolSupported]($this.PSBase.CimInstanceProperties['ProtocolSupported'].Value)
} -Force
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, ProtocolSupported
Use Select-Object
Select-Object
supports calculated properties. When you submit a hashtable, PowerShell dynamically calculates the result:
$ProtocolSupported = @{
Name = 'ProtocolSupportedText'
Expression = {
$value = $_.ProtocolSupported
switch([int]$value)
{
1 {'Other'}
2 {'Unknown'}
3 {'EISA'}
4 {'ISA'}
5 {'PCI'}
6 {'ATA/ATAPI'}
7 {'Flexible Diskette'}
8 {'Mode1496'}
9 {'SCSI Parallel Interface'}
10 {'SCSI Fibre Channel Protocol'}
11 {'SCSI Serial Bus Protocol'}
13 {'SCSI Serial Storage Architecture'}
14 {'VESA'}
15 {'PCMCIA'}
16 {'Universal Serial Bus'}
17 {'Parallel Protocol'}
18 {'ESCON'}
19 {'Diagnostic'}
20 {'I2C'}
21 {'Power'}
22 {'HIPPI'}
23 {'MultiBus'}
24 {'VME'}
25 {'IPI'}
26 {'IEEE-488'}
27 {'RS232'}
28 {'IEEE 802.3 10BASE5'}
29 {'IEEE 802.3 10BASE2'}
30 {'IEEE 802.3 1BASE5'}
31 {'IEEE 802.3 10BROAD36'}
32 {'IEEE 802.3 100BASEVG'}
33 {'IEEE 802.5 Token-Ring'}
34 {'ANSI X3T9.5 FDDI'}
35 {'MCA'}
36 {'ESDI'}
37 {'IDE'}
38 {'CMD'}
39 {'ST506'}
40 {'DSSI'}
41 {'QIC2'}
42 {'Enhanced ATA/IDE'}
43 {'AGP'}
44 {'TWIRP (two-way infrared)'}
45 {'FIR (fast infrared)'}
46 {'SIR (serial infrared)'}
47 {'IrBus'}
1394 {'SCSI Serial Bus Protocol-2'}
default {"$value"}
}
}
}
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, ProtocolSupported, $ProtocolSupported
Use a PowerShell Hashtable
You can use a PowerShell hashtable to decode numeric values. Use a hashtable like this one:
$ProtocolSupported_map = @{
1 = 'Other'
2 = 'Unknown'
3 = 'EISA'
4 = 'ISA'
5 = 'PCI'
6 = 'ATA/ATAPI'
7 = 'Flexible Diskette'
8 = 'Mode1496'
9 = 'SCSI Parallel Interface'
10 = 'SCSI Fibre Channel Protocol'
11 = 'SCSI Serial Bus Protocol'
13 = 'SCSI Serial Storage Architecture'
14 = 'VESA'
15 = 'PCMCIA'
16 = 'Universal Serial Bus'
17 = 'Parallel Protocol'
18 = 'ESCON'
19 = 'Diagnostic'
20 = 'I2C'
21 = 'Power'
22 = 'HIPPI'
23 = 'MultiBus'
24 = 'VME'
25 = 'IPI'
26 = 'IEEE-488'
27 = 'RS232'
28 = 'IEEE 802.3 10BASE5'
29 = 'IEEE 802.3 10BASE2'
30 = 'IEEE 802.3 1BASE5'
31 = 'IEEE 802.3 10BROAD36'
32 = 'IEEE 802.3 100BASEVG'
33 = 'IEEE 802.5 Token-Ring'
34 = 'ANSI X3T9.5 FDDI'
35 = 'MCA'
36 = 'ESDI'
37 = 'IDE'
38 = 'CMD'
39 = 'ST506'
40 = 'DSSI'
41 = 'QIC2'
42 = 'Enhanced ATA/IDE'
43 = 'AGP'
44 = 'TWIRP (two-way infrared)'
45 = 'FIR (fast infrared)'
46 = 'SIR (serial infrared)'
47 = 'IrBus'
1394 = 'SCSI Serial Bus Protocol-2'
}
Use Enum structure
You can cast the raw property values to a new enum type to translate raw numeric values into friendly text. Use an enum like this one:
Enum EnumProtocolSupported
{
Other = 1
Unknown = 2
EISA = 3
ISA = 4
PCI = 5
ATAATAPI = 6
Flexible_Diskette = 7
Mode1496 = 8
SCSI_Parallel_Interface = 9
SCSI_Fibre_Channel_Protocol = 10
SCSI_Serial_Bus_Protocol = 11
SCSI_Serial_Storage_Architecture = 13
VESA = 14
PCMCIA = 15
Universal_Serial_Bus = 16
Parallel_Protocol = 17
ESCON = 18
Diagnostic = 19
I2C = 20
Power = 21
HIPPI = 22
MultiBus = 23
VME = 24
IPI = 25
IEEE_488 = 26
RS232 = 27
IEEE_8023_10BASE5 = 28
IEEE_8023_10BASE2 = 29
IEEE_8023_1BASE5 = 30
IEEE_8023_10BROAD36 = 31
IEEE_8023_100BASEVG = 32
IEEE_8025_Token_Ring = 33
ANSI_X3T95_FDDI = 34
MCA = 35
ESDI = 36
IDE = 37
CMD = 38
ST506 = 39
DSSI = 40
QIC2 = 41
Enhanced_ATAIDE = 42
AGP = 43
TWIRP_two_way_infrared = 44
FIR_fast_infrared = 45
SIR_serial_infrared = 46
IrBus = 47
SCSI_Serial_Bus_Protocol_2 = 1394
}
Status
Current status of an object. Various operational and nonoperational statuses can be defined.
Available values:
'Degraded','Error','Lost Comm','No Contact','NonRecover','OK','Pred Fail','Service','Starting','Stopping','Stressed','Unknown'
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Status
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, Status | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.Status
"${DeviceID}: Status = $value"
}
StatusInfo
State of the logical device. If this property does not apply to the logical device, the value 5 (Not Applicable) should be used.
StatusInfo returns a numeric value. To translate it into a meaningful text, use any of the following approaches:
Use Update-Type
Update-Type
tells PowerShell how to interpret the property. This command needs to be executed only once per PowerShell session:
Update-TypeData -MemberName StatusInfo -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumStatusInfo
{
Other = 1
Unknown = 2
Enabled = 3
Disabled = 4
Not_Applicable = 5
}
[EnumStatusInfo]($this.PSBase.CimInstanceProperties['StatusInfo'].Value)
} -Force
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, StatusInfo
Use Select-Object
Select-Object
supports calculated properties. When you submit a hashtable, PowerShell dynamically calculates the result:
$StatusInfo = @{
Name = 'StatusInfoText'
Expression = {
$value = $_.StatusInfo
switch([int]$value)
{
1 {'Other'}
2 {'Unknown'}
3 {'Enabled'}
4 {'Disabled'}
5 {'Not Applicable'}
default {"$value"}
}
}
}
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, StatusInfo, $StatusInfo
Use a PowerShell Hashtable
You can use a PowerShell hashtable to decode numeric values. Use a hashtable like this one:
$StatusInfo_map = @{
1 = 'Other'
2 = 'Unknown'
3 = 'Enabled'
4 = 'Disabled'
5 = 'Not Applicable'
}
Use Enum structure
You can cast the raw property values to a new enum type to translate raw numeric values into friendly text. Use an enum like this one:
Enum EnumStatusInfo
{
Other = 1
Unknown = 2
Enabled = 3
Disabled = 4
Not_Applicable = 5
}
SystemCreationClassName
Value for the scoping computer’s CreationClassName property.
SystemName
Name of the scoping system.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, SystemName
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, SystemName | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.SystemName
"${DeviceID}: SystemName = $value"
}
TimeOfLastReset
Date and time controller was last reset. This could mean the controller was powered down or reinitialized.
# returning class instances:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, TimeOfLastReset
# reading property value:
Get-CimInstance -ClassName Win32_1394Controller | Select-Object -Property DeviceID, TimeOfLastReset | Foreach-Object {
$DeviceID = $_.DeviceID
$value = $_.TimeOfLastReset
"${DeviceID}: TimeOfLastReset = $value"
}
CDXML Definition
You can turn this WMI class and its methods into PowerShell cmdlets by importing below CDXML file (Cmdlet Definition XML) as a module.
Create Win32_1394Controller.cdxml
$folder = "c:\wmi\Win32_1394Controller"
$cdxmlPath = Join-Path -Path $folder -ChildPath "Win32_1394Controller.cdxml"
# create folder if not present:
$exists = Test-Path -Path $folder
if (!$exists) { $null = New-Item -Path $folder -ItemType Directory }
# write file
$content = @'
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is licensed under 'Attribution 4.0 International' license (https://creativecommons.org/licenses/by/4.0/).
You can free of charge use this code in commercial and non-commercial code, and you can freely modify and adjust the code
as long as you give appropriate credit to the original author Dr. Tobias Weltner.
This material was published and is maintained here:
https://powershell.one/wmi/root/cimv2/win32_1394controller#cdxml-definition
-->
<PowerShellMetadata xmlns="http://schemas.microsoft.com/cmdlets-over-objects/2009/11">
<!--referencing the WMI class this cdxml uses-->
<Class ClassName="Root/CIMV2\Win32_1394Controller" ClassVersion="2.0">
<Version>1.0</Version>
<!--default noun used by Get-cmdlets and when no other noun is specified. By convention, we use the prefix "WMI" and the base name of the WMI class involved. This way, you can easily identify the underlying WMI class.-->
<DefaultNoun>Wmi1394Controller</DefaultNoun>
<!--define the cmdlets that work with class instances.-->
<InstanceCmdlets>
<!--query parameters to select instances. This is typically empty for classes that provide only one instance-->
<GetCmdletParameters />
<GetCmdlet>
<CmdletMetadata Verb="Get" />
<GetCmdletParameters>
<QueryableProperties>
<Property PropertyName="Availability">
<Type PSType="Win32_1394Controller.Availability" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="ConfigManagerErrorCode">
<Type PSType="Win32_1394Controller.ConfigManagerErrorCode" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="ConfigManagerUserConfig">
<Type PSType="switch" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="CreationClassName">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="Description">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="DeviceID">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="ErrorCleared">
<Type PSType="switch" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="ErrorDescription">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="InstallDate">
<Type PSType="system.datetime" />
<MinValueQuery>
<CmdletParameterMetadata PSName="BeforeInstallDate" />
</MinValueQuery>
<MaxValueQuery>
<CmdletParameterMetadata PSName="AfterInstallDate" />
</MaxValueQuery>
</Property>
<Property PropertyName="LastErrorCode">
<Type PSType="system.uint32" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="Manufacturer">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="MaxNumberControlled">
<Type PSType="system.uint32" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="Name">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="PNPDeviceID">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="PowerManagementCapabilities">
<Type PSType="Win32_1394Controller.PowerManagementCapabilities" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="PowerManagementSupported">
<Type PSType="switch" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="ProtocolSupported">
<Type PSType="Win32_1394Controller.ProtocolSupported" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="Status">
<Type PSType="system.string" />
<RegularQuery AllowGlobbing="true">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="StatusInfo">
<Type PSType="Win32_1394Controller.StatusInfo" />
<RegularQuery AllowGlobbing="false">
<CmdletParameterMetadata IsMandatory="false" />
</RegularQuery>
</Property>
<Property PropertyName="TimeOfLastReset">
<Type PSType="system.datetime" />
<MinValueQuery>
<CmdletParameterMetadata PSName="BeforeTimeOfLastReset" />
</MinValueQuery>
<MaxValueQuery>
<CmdletParameterMetadata PSName="AfterTimeOfLastReset" />
</MaxValueQuery>
</Property>
</QueryableProperties>
</GetCmdletParameters>
</GetCmdlet>
<!--defining additional cmdlets that modifies instance properties-->
</InstanceCmdlets>
</Class>
<!--defining enumerations-->
<Enums>
<Enum EnumName="Win32_1394Controller.Availability" UnderlyingType="system.uint16">
<Value Name="Other" Value="1" />
<Value Name="Unknown" Value="2" />
<Value Name="RunningFull_Power" Value="3" />
<Value Name="Warning" Value="4" />
<Value Name="In_Test" Value="5" />
<Value Name="Not_Applicable" Value="6" />
<Value Name="Power_Off" Value="7" />
<Value Name="Off_Line" Value="8" />
<Value Name="Off_Duty" Value="9" />
<Value Name="Degraded" Value="10" />
<Value Name="Not_Installed" Value="11" />
<Value Name="Install_Error" Value="12" />
<Value Name="Power_Save___Unknown" Value="13" />
<Value Name="Power_Save___Low_Power_Mode" Value="14" />
<Value Name="Power_Save___Standby" Value="15" />
<Value Name="Power_Cycle" Value="16" />
<Value Name="Power_Save___Warning" Value="17" />
<Value Name="Paused" Value="18" />
<Value Name="Not_Ready" Value="19" />
<Value Name="Not_Configured" Value="20" />
<Value Name="Quiesced" Value="21" />
</Enum>
<Enum EnumName="Win32_1394Controller.ConfigManagerErrorCode" UnderlyingType="system.uint32">
<Value Name="OK" Value="0" />
<Value Name="CONFIG_ERROR" Value="1" />
<Value Name="CANNOT_LOAD_DRIVER" Value="2" />
<Value Name="LOW_MEMORY" Value="3" />
<Value Name="REGISTRY_CORRUPTED" Value="4" />
<Value Name="MANAGED_RESOURCE_MISSING" Value="5" />
<Value Name="BOOT_CONFIG_CONFLICT" Value="6" />
<Value Name="CANNOT_FILTER" Value="7" />
<Value Name="DRIVER_LOADER_MISSING" Value="8" />
<Value Name="FIRMWARE_RESOURCE_PROBLEM" Value="9" />
<Value Name="DEVICE_CANNOT_START" Value="10" />
<Value Name="DEVICE_FAILED" Value="11" />
<Value Name="NOT_ENOUGH_FREE_RESOURCES" Value="12" />
<Value Name="CANNOT_VERIFY_RESOURCES" Value="13" />
<Value Name="RESTART_REQUIRED" Value="14" />
<Value Name="REENUMERATION_PROBLEM" Value="15" />
<Value Name="CANNOT_IDENTIFY_RESOURCE" Value="16" />
<Value Name="UNKNOWN_RESOURCE_TYPE" Value="17" />
<Value Name="REINSTALL_DRIVERS" Value="18" />
<Value Name="VXD_LOADER_FAILURE" Value="19" />
<Value Name="REGISTRY_CORRUPTION" Value="20" />
<Value Name="DEVICE_REMOVED_DUE_TO_ERROR" Value="21" />
<Value Name="DEVICE_DISABLED" Value="22" />
<Value Name="SYSTEM_FAILURE" Value="23" />
<Value Name="DEVICE_NOT_PRESENT" Value="24" />
<Value Name="DEVICE_SETUP_IN_PROGRESS" Value="25" />
<Value Name="DEVICE_BEING_INSTALLED" Value="26" />
<Value Name="NO_VALID_LOG_CONFIG" Value="27" />
<Value Name="DRIVERS_MISSING" Value="28" />
<Value Name="DEVICE_DISABLED_MISSING_RESOURCES" Value="29" />
<Value Name="IRQ_CONFLICT" Value="30" />
<Value Name="DRIVER_NOT_LOADED" Value="31" />
</Enum>
<Enum EnumName="Win32_1394Controller.PowerManagementCapabilities" UnderlyingType="system.uint16">
<Value Name="Unknown" Value="0" />
<Value Name="Not_Supported" Value="1" />
<Value Name="Disabled" Value="2" />
<Value Name="Enabled" Value="3" />
<Value Name="Power_Saving_Modes_Entered_Automatically" Value="4" />
<Value Name="Power_State_Settable" Value="5" />
<Value Name="Power_Cycling_Supported" Value="6" />
<Value Name="Timed_Power_On_Supported" Value="7" />
</Enum>
<Enum EnumName="Win32_1394Controller.ProtocolSupported" UnderlyingType="system.uint16">
<Value Name="Other" Value="1" />
<Value Name="Unknown" Value="2" />
<Value Name="EISA" Value="3" />
<Value Name="ISA" Value="4" />
<Value Name="PCI" Value="5" />
<Value Name="ATAATAPI" Value="6" />
<Value Name="Flexible_Diskette" Value="7" />
<Value Name="Mode1496" Value="8" />
<Value Name="SCSI_Parallel_Interface" Value="9" />
<Value Name="SCSI_Fibre_Channel_Protocol" Value="10" />
<Value Name="SCSI_Serial_Bus_Protocol" Value="11" />
<Value Name="SCSI_Serial_Bus_Protocol_2" Value="1394" />
<Value Name="SCSI_Serial_Storage_Architecture" Value="13" />
<Value Name="VESA" Value="14" />
<Value Name="PCMCIA" Value="15" />
<Value Name="Universal_Serial_Bus" Value="16" />
<Value Name="Parallel_Protocol" Value="17" />
<Value Name="ESCON" Value="18" />
<Value Name="Diagnostic" Value="19" />
<Value Name="I2C" Value="20" />
<Value Name="Power" Value="21" />
<Value Name="HIPPI" Value="22" />
<Value Name="MultiBus" Value="23" />
<Value Name="VME" Value="24" />
<Value Name="IPI" Value="25" />
<Value Name="IEEE_488" Value="26" />
<Value Name="RS232" Value="27" />
<Value Name="IEEE_802_3_10BASE5" Value="28" />
<Value Name="IEEE_802_3_10BASE2" Value="29" />
<Value Name="IEEE_802_3_1BASE5" Value="30" />
<Value Name="IEEE_802_3_10BROAD36" Value="31" />
<Value Name="IEEE_802_3_100BASEVG" Value="32" />
<Value Name="IEEE_802_5_Token_Ring" Value="33" />
<Value Name="ANSI_X3T9_5_FDDI" Value="34" />
<Value Name="MCA" Value="35" />
<Value Name="ESDI" Value="36" />
<Value Name="IDE" Value="37" />
<Value Name="CMD" Value="38" />
<Value Name="ST506" Value="39" />
<Value Name="DSSI" Value="40" />
<Value Name="QIC2" Value="41" />
<Value Name="Enhanced_ATAIDE" Value="42" />
<Value Name="AGP" Value="43" />
<Value Name="TWIRP__two_way_infrared" Value="44" />
<Value Name="FIR__fast_infrared" Value="45" />
<Value Name="SIR__serial_infrared" Value="46" />
<Value Name="IrBus" Value="47" />
</Enum>
<Enum EnumName="Win32_1394Controller.StatusInfo" UnderlyingType="system.uint16">
<Value Name="Other" Value="1" />
<Value Name="Unknown" Value="2" />
<Value Name="Enabled" Value="3" />
<Value Name="Disabled" Value="4" />
<Value Name="Not_Applicable" Value="5" />
</Enum>
</Enums>
</PowerShellMetadata>
'@ | Set-Content -LiteralPath $cdxmlPath -Encoding UTF8
# import module
Import-Module -Name $cdxmlPath -Force -Verbose
# list new cmdlets
Get-Command -Module "Win32_1394Controller"
See here for more information on CDXML and CDXML-based PowerShell modules.
Type Extensions for PowerShell
You can automatically improve properties of class instances by using a types.ps1xml file.
Create Win32_1394Controller.Types.ps1xml
$folder = "c:\wmi\Win32_1394Controller"
$typesPath = Join-Path -Path $folder -ChildPath "Win32_1394Controller.Types.ps1xml"
# create folder if not present:
$exists = Test-Path -Path $folder
if (!$exists) { $null = New-Item -Path $folder -ItemType Directory }
# write file
$content = @'
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is licensed under 'Attribution 4.0 International' license (https://creativecommons.org/licenses/by/4.0/).
You can free of charge use this code in commercial and non-commercial code, and you can freely modify and adjust the code
as long as you give appropriate credit to the original author Dr. Tobias Weltner.
This material was published and is maintained here:
https://powershell.one/wmi/root/cimv2/win32_1394controller#typesps1xml-file
-->
<Types>
<Type>
<!--@
Applicable type. This type is produced by Get-CimInstance.
To extend instances produced by Get-WmiObject, change the type name to:
System.Management.ManagementObject#root/cimv2\Win32_1394Controller
@-->
<Name>Microsoft.Management.Infrastructure.CimInstance#Root/CIMV2/Win32_1394Controller</Name>
<Members>
<ScriptProperty>
<Name>Availability</Name>
<!--casting raw content to a enum. This translates numeric values to friendly text while leaving the original property value untouched:-->
<GetScriptBlock>[Microsoft.PowerShell.Cmdletization.GeneratedTypes.Win32_1394Controller.Availability]($this.PSBase.CimInstanceProperties['Availability'].Value)</GetScriptBlock>
</ScriptProperty>
<ScriptProperty>
<Name>ConfigManagerErrorCode</Name>
<!--casting raw content to a enum. This translates numeric values to friendly text while leaving the original property value untouched:-->
<GetScriptBlock>[Microsoft.PowerShell.Cmdletization.GeneratedTypes.Win32_1394Controller.ConfigManagerErrorCode]($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)</GetScriptBlock>
</ScriptProperty>
<ScriptProperty>
<Name>PowerManagementCapabilities</Name>
<!--casting raw content to a enum. This translates numeric values to friendly text while leaving the original property value untouched:-->
<GetScriptBlock>[Microsoft.PowerShell.Cmdletization.GeneratedTypes.Win32_1394Controller.PowerManagementCapabilities]($this.PSBase.CimInstanceProperties['PowerManagementCapabilities'].Value)</GetScriptBlock>
</ScriptProperty>
<ScriptProperty>
<Name>ProtocolSupported</Name>
<!--casting raw content to a enum. This translates numeric values to friendly text while leaving the original property value untouched:-->
<GetScriptBlock>[Microsoft.PowerShell.Cmdletization.GeneratedTypes.Win32_1394Controller.ProtocolSupported]($this.PSBase.CimInstanceProperties['ProtocolSupported'].Value)</GetScriptBlock>
</ScriptProperty>
<ScriptProperty>
<Name>StatusInfo</Name>
<!--casting raw content to a enum. This translates numeric values to friendly text while leaving the original property value untouched:-->
<GetScriptBlock>[Microsoft.PowerShell.Cmdletization.GeneratedTypes.Win32_1394Controller.StatusInfo]($this.PSBase.CimInstanceProperties['StatusInfo'].Value)</GetScriptBlock>
</ScriptProperty>
</Members>
</Type>
</Types>
'@ | Set-Content -LiteralPath $typesPath -Encoding UTF8
# import type definition
Update-TypeData -PrependPath $typesPath
Note: Win32_1394Controller.Types.ps1xml is using enumerations defined in ClassName.cdxml which are available only when you imported the .cdxml file via
Import-Module
.
Or, you can manually update the PowerShell type database using Update-TypeData
.
View Update-TypeData
commands for Win32_1394Controller properties
Update-TypeData -MemberName Availability -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumAvailability
{
Other = 1
Unknown = 2
RunningFull_Power = 3
Warning = 4
In_Test = 5
Not_Applicable = 6
Power_Off = 7
Off_Line = 8
Off_Duty = 9
Degraded = 10
Not_Installed = 11
Install_Error = 12
Power_Save_Unknown = 13
Power_Save_Low_Power_Mode = 14
Power_Save_Standby = 15
Power_Cycle = 16
Power_Save_Warning = 17
Paused = 18
Not_Ready = 19
Not_Configured = 20
Quiesced = 21
}
[EnumAvailability]($this.PSBase.CimInstanceProperties['Availability'].Value)
} -Force
Update-TypeData -MemberName ConfigManagerErrorCode -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumConfigManagerErrorCode
{
OK = 0
CONFIG_ERROR = 1
CANNOT_LOAD_DRIVER = 2
LOW_MEMORY = 3
REGISTRY_CORRUPTED = 4
MANAGED_RESOURCE_MISSING = 5
BOOT_CONFIG_CONFLICT = 6
CANNOT_FILTER = 7
DRIVER_LOADER_MISSING = 8
FIRMWARE_RESOURCE_PROBLEM = 9
DEVICE_CANNOT_START = 10
DEVICE_FAILED = 11
NOT_ENOUGH_FREE_RESOURCES = 12
CANNOT_VERIFY_RESOURCES = 13
RESTART_REQUIRED = 14
REENUMERATION_PROBLEM = 15
CANNOT_IDENTIFY_RESOURCE = 16
UNKNOWN_RESOURCE_TYPE = 17
REINSTALL_DRIVERS = 18
VXD_LOADER_FAILURE = 19
REGISTRY_CORRUPTION = 20
DEVICE_REMOVED_DUE_TO_ERROR = 21
DEVICE_DISABLED = 22
SYSTEM_FAILURE = 23
DEVICE_NOT_PRESENT = 24
DEVICE_SETUP_IN_PROGRESS = 25
DEVICE_BEING_INSTALLED = 26
NO_VALID_LOG_CONFIG = 27
DRIVERS_MISSING = 28
DEVICE_DISABLED_MISSING_RESOURCES = 29
IRQ_CONFLICT = 30
DRIVER_NOT_LOADED = 31
}
[EnumConfigManagerErrorCode]($this.PSBase.CimInstanceProperties['ConfigManagerErrorCode'].Value)
} -Force
Update-TypeData -MemberName ProtocolSupported -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumProtocolSupported
{
Other = 1
Unknown = 2
EISA = 3
ISA = 4
PCI = 5
ATAATAPI = 6
Flexible_Diskette = 7
Mode1496 = 8
SCSI_Parallel_Interface = 9
SCSI_Fibre_Channel_Protocol = 10
SCSI_Serial_Bus_Protocol = 11
SCSI_Serial_Storage_Architecture = 13
VESA = 14
PCMCIA = 15
Universal_Serial_Bus = 16
Parallel_Protocol = 17
ESCON = 18
Diagnostic = 19
I2C = 20
Power = 21
HIPPI = 22
MultiBus = 23
VME = 24
IPI = 25
IEEE_488 = 26
RS232 = 27
IEEE_8023_10BASE5 = 28
IEEE_8023_10BASE2 = 29
IEEE_8023_1BASE5 = 30
IEEE_8023_10BROAD36 = 31
IEEE_8023_100BASEVG = 32
IEEE_8025_Token_Ring = 33
ANSI_X3T95_FDDI = 34
MCA = 35
ESDI = 36
IDE = 37
CMD = 38
ST506 = 39
DSSI = 40
QIC2 = 41
Enhanced_ATAIDE = 42
AGP = 43
TWIRP_two_way_infrared = 44
FIR_fast_infrared = 45
SIR_serial_infrared = 46
IrBus = 47
SCSI_Serial_Bus_Protocol_2 = 1394
}
[EnumProtocolSupported]($this.PSBase.CimInstanceProperties['ProtocolSupported'].Value)
} -Force
Update-TypeData -MemberName StatusInfo -TypeName "Microsoft.Management.Infrastructure.CimInstance#root/cimv2/win32_1394controller" -MemberType ScriptProperty -Value {
Enum EnumStatusInfo
{
Other = 1
Unknown = 2
Enabled = 3
Disabled = 4
Not_Applicable = 5
}
[EnumStatusInfo]($this.PSBase.CimInstanceProperties['StatusInfo'].Value)
} -Force
Requirements
To use Win32_1394Controller, the following requirements apply:
PowerShell
Get-CimInstance
was introduced with PowerShell Version 3.0, which in turn was introduced on clients with Windows 8 and on servers with Windows Server 2012.
If necessary, update Windows PowerShell to Windows PowerShell 5.1, or install PowerShell 7 side-by-side.
Operating System
Win32_1394Controller was introduced on clients with Windows Vista and on servers with Windows Server 2008.
Namespace
Win32_1394Controller lives in the namespace root/cimv2. This is the default namespace. There is no need to use the -Namespace parameter in Get-CimInstance
.
Implementation
Win32_1394Controller is implemented in CIMWin32.dll and defined in CIMWin32.mof. Both files are located in the folder C:\Windows\system32\wbem
:
explorer $env:windir\system32\wbem
notepad $env:windir\system32\wbem\CIMWin32.mof