Microsoft HardwareCertification reference: Creates an HCK project definition file. The syntax and selected example below are adapted from the pinned Windows Server 2025 reference. Module availability, target configuration and delegated permissions determine whether it can run in your environment. Documentation and parameter text: Microsoft, CC BY 4.0; formatting adapted by Cmdlet World. No execution testing is claimed.
Use an account with the target resource permissions documented for New-HwCertProjectDefinitionFile. Modifying administrative cmdlets may require elevation or delegated administration. This catalog does not assert that ordinary users can execute the command.
Supported environments
Windows / HardwareCertification · Windows Server 2025 documentation; feature/module prerequisites apply
Parameters
-ClassIdList
Specifies an array of class GUIDs as strings. For more information, see Class-GUID in the TechNet library. You can use a comma-separated list.
-ContainerIdList
Specifies an array of container IDs, in GUID format. You can use a comma-separated list.
-ControllerName
Specifies the name of the controller or test server. The project definition file stores the controller name in the Controller attribute of the \ element. If you do not provide a controller name and do not specify the OutputAutomatedPdef parameter, the cmdlet uses the current computer.
-CrashDumpCollection
Specifies the type of Windows crash dump file to generate and collect for the project. The acceptable values for this parameter are: - Mini - Kernel - Full - Disable Default value is Disable.
-DriverList
Specifies an array of names of target drivers. You can use a comma-separated list.
-EnableIsolateTargets
Indicates that the cmdlet creates an individual device family for each discovered target. If you do not specify this parameter, the cmdlet groups targets into families based on device class.
-EnableMultiDeviceTest
Indicates that multiple-device scheduling is enabled. The project definition file stores the Boolean setting for multiple-device scheduling in the \ element.
-HwIdList
Specifies an array of hardware IDs for target devices. You can use a comma-separated list. You can specify partial hardware IDs. The cmdlet matches a partial value as a substring of the hardware ID format. The comparison uses ASCII characters and is not case sensitive. If the ID contains an ampersand character (&), enclose the ID in double quotes (""). In Windows PowerShell®, the ampersand is a reserved character.
-MachineList (required)
Specifies an array of test computer names. You can use a comma-separated list. If you specify more than one computer, all of them must be in the same pool.
-MachinePool (required)
Specifies the name of an existing machine pool, which contains test computers.
-OutputAutomatedPdef
Indicates that the cmdlet generates the following attributes in the project definition file: - Controller = "\[MACHINE\]" - TestCollectionReadLocation = "\[FILTERED_TEST_COLLECTION\]" - Path = "\[PACKAGES\]"
-PdefFilePath
Specifies the name of the project definition file. If you do not specify a name, the cmdlet creates a name in the following format: %UserProfile%\Desktop\PDEF_Files\PDEF_TimeDate\PDEF_OSPlatformName_TimeDate.xml.
-ProjectName
Specifies the friendly name of the project. The project definition file stores the project name in the Name attribute of the \ element. If you do not specify a name, the cmdlet generates a name that contains a time stamp.
-RunSystemTest
Indicates that the cmdlet specifies a single TargetType attribute, which equals System. Specify this parameter for testing a whole system. You cannot run a System test with any other query types. A System test treats the target as a single device. This differs from TestAllDevices, which tests every target on a system, but treats them individually. Specify the TestAllDevices parameter to test all devices.
-SkipTestStatus
Specifies the skipping mode for scheduling tests. The project definition file stores this value in the \ element. The acceptable values for this parameter are: - Pass - Fail - NoData The default value is Pass.
-TestAllDevices
Indicates that the controller tests all target devices that it discovers. The controller discovers devices on the computers specified by the MachineList or the MachinePool parameter.
-TestCollectionFilePath
Specifies the full path for a test collection .xml file. The project definition file stores the path in the TestCollectionReadLocation attribute of the \ element. If you do not specify a path, the cmdlet uses an empty string.
Prerequisites
Windows with the HardwareCertification module and the Windows feature or management tools that provide it. Confirm target connectivity and version compatibility using the linked Microsoft reference.
Security considerations
This cmdlet changes system state. Review every target and parameter in the official reference, test outside production, and prepare an appropriate backup or rollback. Do not execute the example automatically.
Examples
Example 1: Create a project definition file for a driver
This command creates a project definition file. The command populates the project file with HCK target values for which disk.sys is a device driver, and from all machines available in the Test07 pool. Source: Microsoft, CC BY 4.0; transcript prompt/output removed. This example was not executed.