The Win32_PrinterDriver WMI class represents the drivers for a Win32_Printer instance.
Methods
Win32_PrinterDriver has 3 methods:
Method | Description |
---|---|
AddPrinterDriver | Creates a new printer driver. |
StartService | Starts print service. |
StopService | Stops print service. |
Learn more about Invoke-CimMethod
and how to invoke commands. Click any of the methods listed above to learn more about their purpose, parameters, and return value.
Properties
Win32_PrinterDriver returns 22 properties:
'Caption','ConfigFile','CreationClassName','DataFile','DefaultDataType',
'DependentFiles','Description','DriverPath','FilePath','HelpFile','InfName','InstallDate','MonitorName',
'Name','OEMUrl','Started','StartMode','Status','SupportedPlatform','SystemCreationClassName',
'SystemName','Version'
Unless explicitly marked as writeable, all properties are read-only. Read all properties for all instances:
Get-CimInstance -ClassName Win32_PrinterDriver -Property *
Most WMI classes return one or more instances.
When
Get-CimInstance
returns no result, then apparently no instances of class Win32_PrinterDriver exist. This is normal behavior.Either the class is not implemented on your system (may be deprecated or due to missing drivers, i.e. CIM_VideoControllerResolution), or there are simply no physical representations of this class currently available (i.e. Win32_TapeDrive).
Caption
Short description of the objectâa one-line string.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, Caption
ConfigFile
Configuration file for this printer driver.
Example: “pscrptui.dll”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, ConfigFile
CreationClassName
Name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, CreationClassName
DataFile
Data file for this printer driver.
Example: “qms810.ppd”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, DataFile
DefaultDataType
Default data type for this printer driver.
Example: “EMF”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, DefaultDataType
DependentFiles
Array of dependent files for this printer driver.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, DependentFiles
Description
Comment that describes the link.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, Description
DriverPath
Path for this printer driver.
Example: “C:\drivers\pscript.dll”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, DriverPath
FilePath
Path to the INF file being used.
Example: “c:\temp\driver”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, FilePath
HelpFile
Help file for this printer driver.
Example: “pscrptui.hlp”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, HelpFile
InfName
Name of the INF file being used. The default is to use an operating system provided printer INF file. A different file name is used if the driver is provided directly by the manufacturer of the printer and not the operating system.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, InfName
InstallDate
Date and time the object is installed. This property does not require a value to indicate that the object is installed.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, InstallDate
MonitorName
Name of the monitor for this printer driver.
Example: “PJL monitor”
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, MonitorName
Name
Driver name for this printer. This is a compound key composed of the Name, Version, and SupportedPlatform values.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name
OEMUrl
World Wide Web (WWW) link to the printer manufacturer’s website. Note that this property is not populated when the Win32.inf file is used, and is only applicable for drivers provided directly from the manufacturer.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, OEMUrl
Started
If TRUE, the service is started. If FALSE, the service is stopped.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, Started
StartMode
Start mode of the service is automatically started by an operating system, or only started when requested.
The following are possible values:
Automatic (“Automatic”)
Manual (“Manual”)
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, StartMode
Status
Current status of an object. Various operational and nonoperational statuses can be defined. Available values:
$values = 'Degraded','Error','Lost Comm','No Contact','NonRecover','OK','Pred Fail','Service','Starting','Stopping','Stressed','Unknown'
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, Status
SupportedPlatform
Operating environments that the driver is intended for.
Example: “Windows NT x86”.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, SupportedPlatform
SystemCreationClassName
Scoping system’s creation class name.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, SystemCreationClassName
SystemName
Name of the system that hosts this service.
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, SystemName
Version
Operating system version for the printer driver.
Win2k
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property Name, Version
Examples
List all instances of Win32_PrinterDriver
Get-CimInstance -ClassName Win32_PrinterDriver
Learn more about Get-CimInstance
and the deprecated Get-WmiObject
.
View all properties
Get-CimInstance -ClassName Win32_PrinterDriver -Property *
View key properties only
Get-CimInstance -ClassName Win32_PrinterDriver -KeyOnly
Selecting Properties
To select only some properties, pipe the results to Select-Object -Property a,b,c
with a comma-separated list of the properties you require. Wildcards are permitted.
Get-CimInstance
always returns all properties but only retrieves the ones that you specify. All other properties are empty but still present. That’s why you need to pipe the results into Select-Object
if you want to limit the visible properties, i.e. for reporting.
Selecting Properties
The code below lists all available properties. Remove the ones you do not need:
$properties = 'Caption',
'ConfigFile',
'CreationClassName',
'DataFile',
'DefaultDataType',
'DependentFiles',
'Description',
'DriverPath',
'FilePath',
'HelpFile',
'InfName',
'InstallDate',
'MonitorName',
'Name',
'OEMUrl',
'Started',
'StartMode',
'Status',
'SupportedPlatform',
'SystemCreationClassName',
'SystemName',
'Version'
Get-CimInstance -ClassName Win32_PrinterDriver | Select-Object -Property $properties
Limiting Network Bandwidth
If you work remotely, it makes sense to limit network bandwidth by filtering the properties on the server side, too:
Get-CimInstance -Class Win32_PrinterDriver -Property $property |
Select-Object -Property $property
Selecting Instances
To select some instances, use Get-CimInstance and a WMI Query. The wildcard character in WMI Queries is % (and not “*”).
The parameter -Filter runs a simple query.
Listing all instances where the property Caption starts with “A”
Get-CimInstance -Class Win32_PrinterDriver -Filter 'Caption LIKE "a%"'
Using a WQL Query
The parameter -Query uses a query similar to SQL and combines the parameters -Filter and -Property. This returns all instances where the property Caption starts with “A”, and returns the properties specified:
Get-CimInstance -Query "SELECT DependentFiles, SystemCreationClassName, FilePath, DriverPath FROM Win32_PrinterDriver WHERE Caption LIKE 'a%'"
Any property you did not specify is still present but empty. You might need to use
Select-Object
to remove all unwanted properties:Get-CimInstance -Query "SELECT DependentFiles, SystemCreationClassName, FilePath, DriverPath FROM Win32_PrinterDriver WHERE Caption LIKE 'a%'" | Select-Object -Property DependentFiles, SystemCreationClassName, FilePath, DriverPath
Accessing Remote Computers
To access remote systems, you need to have proper permissions. User the parameter -ComputerName to access one or more remote systems.
Authenticating as Current User
# one or more computer names or IP addresses:
$list = 'server1', 'server2'
# authenticate with your current identity:
$result = Get-CimInstance -ClassName Win32_PrinterDriver -ComputerName $list
$result
Authenticating as Different User
Use a CIMSession object to authenticate with a new identity:
# one or more computer names or IP addresses:
$list = 'server1', 'server2'
# authenticate with a different identity:
$cred = Get-Credential -Message 'Authenticate to retrieve WMI information:'
$session = New-CimSession -ComputerName $list -Credential $cred
$result = Get-CimInstance Win32_PrinterDriver -CimSession $session
# remove the session after use (if you do not plan to re-use it later)
Remove-CimSession -CimSession $session
$result
Learn more about accessing remote computers.
Requirements
To use Win32_PrinterDriver, 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_PrinterDriver was introduced on clients with Windows Vista and on servers with Windows Server 2008.
Namespace
Win32_PrinterDriver 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_PrinterDriver is implemented in CIMWin32.dll and defined in Win32_Printer.mof. Both files are located in the folder C:\Windows\system32\wbem
:
explorer $env:windir\system32\wbem
notepad $env:windir\system32\wbem\Win32_Printer.mof