I’ve been doing some automation recently and came across a useful tool from Microsoft which allows to schedule remotely jobs in HCK called wttcl.exe. The tool typically can be found in C:\Program Files (x86)\Windows Kits\8.0\Hardware Certification Kit\Studio\ folder.
It’s ideal for doing some automation, since it supports all necessary commands to schedule jobs and manage machine pools in HCK. Just run it via command line and you will see all the commands:
General Usage: WttCl.exe [Plug-In name] [plug-in parameters] Avaliable Plug-In are: updateresult setmachinepoolpermissions schedulejob resultreport setglobalparametervalue exportjob setmachinestatus resultcollection schedulestatus importresult addjob importjob deletejob movemachine insertresult exportresult deleteresult
I was using the tool mainly in my HCK server, however I noticed that if I install HCK Studio on any arbitrary computer the wttcl.exe also gets installed. Calling wttcl.exe from non-HCK computer usually resulted in error message “Cannot locate any registered Enterprise” and a non-zero return value.
If you disassemble wttcl.exe you will notice that it uses plugins from the the subfolder WttCl which has plugins implemented as dlls. One level down there is a log folder called LOG. Here is a typical log folder path: C:\Program Files (x86)\Windows Kits\8.0\Hardware Certification Kit\Studio\WttCl\LOG
By looking into this folder I saw that each time I have a failure when running wttcl.exe I see the following messages in the log right before failure:
Arguments parsing completed. Verbose mode has been changed to False. Base arugments have been parsed. Checking "MachineID" argument... Checking "MachinePoolID" argument... Splitting "MachineName" argument... Plug-in specific arugments have been parsed. Obtaining connection to identity server and getting all runtime controller names.... Identity Server and/or Database not specified. Fetching from registered enterprise
So, it seems like I am not passing the “Identity Database” to wttcl.exe and it makes it to fail. According to the tool’s command line help, Identity Database is a name of database which hosts HCK jobs. The default db name is DTMJobs, so passing the following paramater to wttcl.exe fixes the problem:
wttcl.exe … /IdentityDatabase:DTMJobs