Question

I am working to deploy smart cards to our environment and the driver provided from the manufacturer is 3 files, a CAT,DLL,and INF. If I right click the INF and select install it works. I need to package this for SCCM so I tried to install via command line but I get installation failed every time. Below is the INF

 ; 
 ; HID Global Smartcard Minidriver inf for x64
 ;
 ;

 [Version]
 Signature="$Windows NT$"
 Provider=%VendorName%
 DriverVer=07/12/2007,1.0.0.14
 DriverPackageDisplayName="HID Global Minidriver"
 CatalogFile=hidcrdmx.cat
 Class="Smart Cards"
 ClassGuid={990A2BD7-E738-46c7-B26F-1CF8FB9F1391}

 [Manufacturer]
 %VendorName%=HIDGlobal,NTamd64

 [HIDGlobal.NTamd64]
 %HIDGlobalDeviceName%=HIDGlobal_Install,UMDF\ATR_3BFA1800FF8131FE454A434F5034314332303074  

 [DefaultInstall]
 AddReg=Minidriver_RegistryAdd
 CopyFiles=@hidcrdmx.dll
 CopyFiles=Syswow64_CopyFiles


 [HIDGlobal_Install]
 CopyFiles=@hidcrdmx.dll
 CopyFiles=Syswow64_CopyFiles

 [Syswow64_CopyFiles]
 hidcrdm.dll

 [SourceDisksNames]
 1=%MediaDescription%

 [SourceDisksFiles]
 hidcrdmx.dll=1
 hidcrdm.dll=1


 [Strings]
 VendorName="HID Global"
 MediaDescription="HID Global Smart Card Minidriver Installation Disk"
 CardKey="SOFTWARE\Microsoft\Cryptography\Calais\SmartCards\HID Crescendo C200"
 CardKey64="SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\SmartCards\HID Crescendo C200"
 HIDGlobalDeviceName="HID Crescendo C200"

 [Minidriver_RegistryAdd]
 HKLM, %CardKey%,"80000001",0x0,"hidcrdmx.dll"
 HKLM,%CardKey%,ATR,0x00000001,3B,FA,18,00,FF,81,31,FE,45,4A,43,4F,50,34,31,43,32,30,30,74
 HKLM, %CardKey%,ATRMask,0x00000001,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff  
 HKLM, %CardKey%,"Crypto Provider",0x0,"Microsoft Base Smart Card Crypto Provider"
 HKLM, %CardKey%,"Smart Card Key Storage Provider",0x0,"Microsoft Smart Card Key Storage Provider"
 HKLM, %CardKey64%,"80000001",0x0,"hidcrdm.dll"
 HKLM, %CardKey64%,ATR,0x00000001,3B,FA,18,00,FF,81,31,FE,45,4A,43,4F,50,34,31,43,32,30,30,74
 HKLM, %CardKey64%,ATRMask,0x00000001,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff  
 HKLM, %CardKey64%,"Crypto Provider",0x0,"Microsoft Base Smart Card Crypto Provider"
 HKLM, %CardKey64%,"Smart Card Key Storage Provider",0x0,"Microsoft Smart Card Key Storage Provider"


 [DestinationDirs]
 DefaultDestDir = 11 ; dirid = \system32 on WinNT platforms
 Syswow64_CopyFiles=10,syswow64 ; %windir%\syswow64 on x64
Was it helpful?

Solution 2

Use dpinst for installing drivers from the command line. You can get this by downloading the Windows 8 SDK, even if you're not using Windows 8 in the environment. There are separate x64 and x86 dpinst executables. Here is the dpinst /? output:

    C:\Program Files (x86)\Windows Kits\8.0\redist\DIFx\dpinst\EngMui\x64\dpinst.exe
: installs and uninstalls driver packages.
By default, the tool searches the current directory and tries to install all dri
ver packages found.

Usage: C:\Program Files (x86)\Windows Kits\8.0\redist\DIFx\dpinst\EngMui\x64\dpi
nst.exe [/U INF-file][/S | /Q][/LM][/P][/F][/SH][/SA][/A][/PATH Path][/EL][/L La
nguageID][/C][/D][/LogTitle Title][/SW][/? | /h | /help]

  /U INF-file    Uninstall a driver package (INF-file).
  /S | /Q        Silent (Quiet) mode. Suppresses the Device Installation Wizard
and any dialogs popped-up by the operating system.
  /LM    Legacy mode. Accepts unsigned driver packages and packages with missing
 files. These packages won't install on the latest version of Windows.
  /P     Prompt if the driver package to be installed is not better than the cur
rent one.
  /F     Force install if the driver package is not better than the current one.

  /SH    Scans hardware for matching devices and only copies and installs those
drivers for which a device is present. Only valid for Plug and Play drivers.
  /SA    Suppress the Add/Remove Programs entry normally created for each driver
 package.
  /A     Install all or none.
  /PATH Path     Search for driver packages under the given path.
  /EL    Enables all languages not explicitly listed in the XML file.
  /L LanguageID          Tries to use the given language in all UI. Useful for l
ocalization tests.
  /SE    Suppress the EULA.
  /C     Dump logging output to attached Console (Windows XP and above).
  /D     Delete driver binaries on uninstall.
  /SW    Suppresses the Device Installation Wizard, the operating system might s
till pop-up user dialogs.
  /? | /h | /help        Shows this help.

If you need to install the publisher certificate before installing the driver, that can be done with certmgr.exe, and installing the certificate to the trusted publishers store. That way, the driver install won't fail or prompt to continue and it will be truly unattended.

OTHER TIPS

I was in the same situation and in my case, dpinst returned code 0x100 "No matching devices found".

I finally found the solution, using the following command line:

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 .\hidcrdmx.inf

The C200 is now fully recognized by Windows.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top