代码之家  ›  专栏  ›  技术社区  ›  JD Roberson

通过命令行安装设备驱动程序inf

  •  1
  • JD Roberson  · 技术社区  · 11 年前

    我正在努力将智能卡部署到我们的环境中,制造商提供的驱动程序是3个文件,一个CAT、DLL和INF。如果我右键单击INF并选择安装,它就可以工作了。我需要为SCCM打包这个,所以我试图通过命令行安装,但每次安装都失败了。以下是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
    
    2 回复  |  直到 11 年前
        1
  •  4
  •   Radim Köhler    11 年前

    我也处于同样的情况,在我的情况下,dpinst返回了代码0x100 “未找到匹配的设备” .

    我终于找到了解决方案,使用以下命令行:

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

    C200现在已被Windows完全识别。

        2
  •  1
  •   MDMoore313    11 年前

    使用 dpinst 用于从命令行安装驱动程序。您可以通过下载Windows 8 SDK来获得此功能,即使您没有在环境中使用Windows 8。有单独的x64和x86 dpinst可执行文件。这是 dpinst /? 输出:

        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.
    

    如果您需要在安装驱动程序之前安装发布者证书,可以使用 certmgr.exe ,并将证书安装到 trusted publishers 百货商店这样,驱动程序安装就不会失败或提示继续,而且它将真正无人值守。