学习一下,感谢大佬们的分享 |
搞定了,应该这样写 devcon install virtnet60.inf "root\virtnet60_a", 而不是 devcon install virtnet60.inf "root\virtnet60" |
addaadda 发表于 2024-8-24 09:00 按照我给的批处理,照葫芦画瓢呗,搞不定的话,联系下5大,或者红毛樱木,他们是专家。 |
需要安装virtnet60,一路查到这里,还是没有解决问题,有大佬可以搞定命令行安装过时驱动么 zip包发不上来,也不知为何 ------------------------------------------------------------------------- :: 使用下面的脚本安装不成功,在网络适配器里显示 未知设备,不知为何 devcon install virtnet60.inf "root\virtnet60" |
那个“始终信任来自xxxx的软件”复选框,无论是否勾选,都不影响svbus驱动的安装,无所谓了。 |
527104427 发表于 2021-4-4 09:03 5大,刚才特意测试了下,那个“始终信任来自xxxx的软件”复选框,无论是否勾选,都不影响svbus驱动的安装,所以我没有问题了。 |
527104427 发表于 2021-4-4 09:03 再点一次?问题是不知道原来是否是选中状态啊?还要判断,有点麻烦。 |
527104427 发表于 2021-3-30 23:13 感谢5大! |
狼人72105 发表于 2021-3-29 16:27 已经用devcon64搞定了。 dpinst不行。 |
试了,没有办法,那就玩完。。。 |
Devcon dpinst 都试了没? |
527104427 发表于 2021-3-29 00:21 5大厉害,果然可以!感谢! |
liuzhaoyzz 发表于 2021-3-28 18:18 pecmd 可以用多线程监视 ,查看窗口出现了,再传递按键。 |
dos时代菜鸟 发表于 2021-3-28 15:22 有点小问题,批处理是流程化执行的,pecmd必须作为一个守护进程提前打开,然后批处理调用devcon64执行安装程序,安装过程中才会弹出对话框,如果pecmd放在后面,可能执行不了,因为不确认的话,批处理流程走不下去,进行不到下一个语句。 我也曾经想过有没有注册表或者组策略可以用命令行避免这个对话框,但我不知道在哪里。 |
dos时代菜鸟 发表于 2021-3-28 15:21 现在就是判断系统里面是否已经安装了svbus驱动,在再做相应处理。 红毛的pecmd和我写的批处理脚本都是这样做的。 |
本帖最后由 dos时代菜鸟 于 2021-3-28 15:24 编辑 liuzhaoyzz 发表于 2021-3-28 11:17 PECMD是可以,找出那个窗口,发送个按键,是可以做到的。再有就是能否关闭相关安全服务,来避免窗口弹出,因为可能安全服务级别不同,窗口内容不一样。 |
如果先判断下系统是否已经装有这个驱动,如果有,就不再安装了, 就不会有需要重启的情况了, |
freesoft00 发表于 2021-3-28 11:14 au3/ahk都可以实现模拟按键。批处理其他的一些功能需要调用pecmd,5大已经写好的有现成的,所以想直接用pecmd来搞定。 |
liuzhaoyzz 发表于 2021-3-28 10:03 既然这样,那不如直接用ahk从写 红毛的脚本,反正都是调用devcon安装,ahk还可以模拟点击 |
liuzhaoyzz 发表于 2021-3-28 08:26 看来还是要重新启动。 如果是 win7 下 情况可能更复杂。 |
本帖最后由 liuzhaoyzz 于 2021-3-28 09:13 编辑 红毛写了个pecmd脚本:test.wcs ENVI &NeedInstall=No IFEX #%&bx64%=0, {* ENVI &devconexe=%&CurDir%\devcon.exe ENVI &svbusid="ROOT\svbusx86" }! {* ENVI &devconexe=%&CurDir%\devcon64.exe ENVI &svbusid="ROOT\svbusx64" } DEVI *status:&Status:+:%&svbusid% FIND $%&Status%=, {* ENVI &NeedInstall=Yes } FIND $%&NeedInstall%=Yes, {* EXEC -wait -hide "%&devconexe%" install "%&Curdir%\svbus.inf" %&svbusid% } 用最新版pecmd搭配devcon也可以安装svbus,pecmd load test.wcs。 存在的问题一样,svbus驱动安装好之后,不能卸载,卸载之后就不能安装了。删除驱动之后再次安装就会导致前面18楼的帖子一样的结果(有截图): 由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常。 (代码 31) 对象名已存在。 哦,重启了下电脑,好像就好了!驱动正常了。 |
红毛樱木 发表于 2021-3-27 14:06 已添加。 |
liuzhaoyzz 发表于 2021-3-27 13:03 搭好环境,加我QQ 252184824 远程看下 |
本帖最后由 liuzhaoyzz 于 2021-3-27 13:07 编辑 dos时代菜鸟 发表于 2021-3-27 12:27 勾上显示隐藏设备也是一样的。应该是pecmd安装驱动没有成功。 我看了下pecmd的DEVI命令帮助: │命令│'DEVI' ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │格式│DEVI [*rescan] [*norescan] [*devclass:DevClass] [$]<CAB路径>[,匹配级别[,解压目录]] ┃ ┃ │ │DEVI [*rescan] [*norescan] [*nocheck] <INF路径>[,DevClass] ┃ ┃ │ │DEVI [*rescan] [*norescan] <含有INF子目录的目录>[,DevClass] ┃ ┃ │ │DEVI [*rescan] [*norescan] <*sub|*self> <含有INF文件的目录>[,DevClass] ┃ ┃ │ │DEVI $[$]<INF路径>,[安装节],[操作码] <===◆标准安装模式, 默认DefaultInstall,132 ┃ ┃ │ │DEVI [*rescan] [*norescan] *extract <CAB路径>,[匹配级别],解压目录 <===纯解压 ┃ ┃ │ │DEVI [*rescan] [*norescan] *nocheck <CAB路径>,[匹配级别],解压目录,INF相对路径 <直接安包内INF┃ ┃ │ │DEVI *rescan[:Fun] <===重新扫描硬件改动 ┃ ┃ │ │DEVI listdev:变量名 [*devclass:DevClass] [*ALL] [*listdev=i|c|+] [*devid:[h|c|+|@:]ID] ┃ ┃ │ │ [*comp[+]] [*hwid] [*inst] [*many] [*rescan] //查询 可'preID1''preID2'... ┃ ┃ │ │DEVI *disverify <===关闭驱动校验 **为强制 DEVI *autodisverify <==驱动判断模式 ┃ ┃ │ │DEVI <*enable|*disable|*remove|*restart>:[h|c|+:]设备实例路径/(hc)ID <===启用/禁用/删..设备┃ ┃ │ │DEVI *update:硬件ID:INF <===更新设备 可'硬件ID1:INF1''硬件ID2:INF2'... 上同 ┃ ┃ │ │DEVI *status:返回名:[h|c|+:]设备实例路径/(hc)ID [*nl] <===查询 可'ID1''ID2'... ┃ ┃ │ │ status:0x400=有问题 0x8000=权限 0x8=运行 PROBLEM:0x16=禁止 ┃ ┃ │ │DEVI buildcache: 驱动目录 //生成目录的加速缓冲 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │功能│从 CAB 文件或INF文件或指定的文件夹中查找(并安装)驱动程序。 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │ │※*dummy 则不实际安装。用于调试,如查看 DevClass。*devid:设备ID 则安装指定设备驱动。 ┃ ┃ │ │ *nnverify 则不禁止驱动签名校验;*rverify之后恢复禁止驱动签名校验设置。 *7pe[-]则强制使用 ┃ ┃ │ │ Drvload。*inner则强制不使用Drvload。*drvload/*devcon优先用drvload(默认)/devcon。 ┃ ┃ │ │ *retid:变量名 返回本次安装驱动的设备的ID。*auto自动转换是否“处理INF”(CAB默认。注意会改写┃ ┃ │ │ INF) *sys:拷贝到系统目录 *cab强制为CAB文件 *comp+:也匹配兼容ID *ret:返回名:返回报告 ┃ ┃ │ │ *IdCah:PeVar:可续用ID缓冲 *infcache:加速缓冲文件 ┃ ┃ │参数│■指定CAB文件路径。CAB前导"$"表示解压缩驱动文件后安装驱动,否则不安装驱动;可内置 ┃ ┃ │ │■INF前导"$"表示执行拷贝的标准模式;否则只加载设备驱动(可能因找不到设备而不加载); ┃ ┃ │ │■*nocheck:不检查硬件ID强制安装;*norescan:禁止重新扫描硬件改动。 ┃ ┃ │ │■*rescan[:Fun]:重新扫描硬件改动(NT6非强制安装时默认),可单用;Fun:0~7。*rescan:3或2 ┃ ┃ │ │■匹配级别:设备ID的以&分隔的节数,默认2。 ┃ ┃ │ │■查询:默认为设备ID,*listdev=c则为兼容ID,*listdev=i则为唯一ID。*ALL则包含不存在设备 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃ │示例│DEVI *retid:&&IDS $%SystemRoot%\DRV.CAB 或 DEVI MyInf*.INF 或 DEVI %SystemRoot%\Inf\*.INF ┃ ┃ │ │DEVI %SystemRoot% ┃ ┃ │ │DEVI *extract myCab.CAB,,D:\ABC ┃ ┃ │ │DEVI *dummy *sub D:\ABC //打印D:\ABC下所有INF的DevClass到LOGS。 ┃ ┃ │ │DEVI *sub D:\ABC,Net //D:\ABC下寻找并安装网络驱动。 ┃ ┃ │ │DEVI *devclass:Net $D:\DRV.CAB,,%TEMP% //D:\DRV.CAB中寻找并安装网络驱动。 ┃ ┃ │ │DEVI *devid:PCI\VEN_8086&DEV_1229 $D:\DRV.CAB,,%TEMP% //网卡Intel8255x ┃ ┃ │ │DEVI *disable:PCI\VEN_14E4&DEV_16B5&SUBSYS_05001025&REV_10\4&14C08592&0&00E3 //禁用网卡BCM ┃ ┃ │ │DEVI $$D:\MyDrvs\Drv1.inf //◆标准安装模式, 默认DefaultInstall,132 ┃ ┃ ├──┼──────────────────────────────────────────────┨ ┃DEVI│备注│※此命令使用自定的(而非系统的)驱动搜索算法,可快速解压缩可能用到的驱动程序,因此,一个设备可┃ ┃ │ │ 能搜索到多个驱动程序。 ┃ ┃ │ │※在CAB中,把每个驱动单独放在一个目录中,并保证CAB中INF文件总是在当前目录的最前面,且CAB中的┃ ┃ │ │ INF文件必须经过处理。建议使用配套程序XCAB来制作。 ┃ ┃ │ │※驱动文件是CAB时,NT5.x系统中,前导'$'和[释放目录]不能同时设置(除非按NT6模式或*sys),但可同┃ ┃ │ │ 时省略。省略前导'$'时只解压文件;省略[释放目录]时,将进行驱动匹配解压,INF文件 ┃ ┃ │ │ 被解压到 "%WinDir%\INF" 目录,SYS文件解压到 "%WinDir%\SYSTEM32\DRIVERS" 目录,其它文件解压┃ ┃ │ │ 到" %WinDir%\SYSTEM32" 目录。 ┃ ┃ │ │※驱动文件是CAB时,NT6.x系统中,(*sys同此)有前导'$',[释放目录]为空或*,则为%TEMP%下的一个临┃ ┃ │ │ 时目录,安装后自动删除。有释放目录'$'可省。将CAB压缩文件按目录结构解压到指定目录中,当有前┃ ┃ │ │ 导'$'时表示解压后安装目标目录的驱动文件。如果不安装,需要指定*extract。 ┃ ┃ │ │※如果其它文件需要解压缩到特定目录中,可以在文件名中使用"#"代替目录分隔符,如文件 ┃ ┃ │ │ "SYSTEM32#WBEM#MOF#XXX.MOF"将会被解压缩到"%SystemRoot%\SYSTEM32\WBEM\MOF\XXX.MOF"。 ┃ ┃ │ │※NT6.x系列WinPE中,用DEVI命令安装"%WinDir%\INF"的INF文件将不进行硬件ID匹配检查(直接安装)。 ┃ ┃ │ │※此命令还有一个功能:从本地磁盘中搜索驱动,如"DEVI \Windows,Display"。但此命令未完善,会提 ┃ ┃ │ │ 示驱动文件对话框。因此,本功能暂不提供技术支持。 ┃ ┃ │ │ *self表示搜索其下*.inf;*sub还要搜索子目录;*self*sub都没则搜索其下INF\*.inf ┃ ┃ │ │※DevClass: Battery CDROM Computer DiskDrive Display FloppyDisk HIDClass Image Infrared ┃ ┃ │ │ Keyboard MEDIA Media Monitor Mouse Net PCMCIA Ports Processor SCSIAdapter System USB ┃ ┃ │ │ Volume fdc hdc ┃ ┃ │ │※%&__DEVI.REBOOT%: 是否需要重启 ID中*字符用^*(或*)替代 ┃ @echo off if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 ( set "devcon=devcon.exe" set "svbus=svbusx86" set "PECMD=PECMDx86_cli.exe" ) else ( set "devcon=devcon64.exe" set "svbus=svbusx64" set "PECMD=PECMDx64_cli.exe" ) reg import EVRootCA.reg rem sc delete "%svbus%" rem PECMDx64_cli DEVI *self *sub *nocheck *rverify *sys *ret $$.\SVBus-朱玛\svbus.inf rem PECMDx64_cli DEVI $$.\SVBus-朱玛\svbus.inf rem PECMDx64_cli DEVI .\svbus.inf PECMDx64_cli DEVI *remove *devcon *devid:root\%svbus% PECMDx64_cli DEVI *nocheck **disverify *sys *ret *inner *devcon *devid:root\%svbus% svbus.inf pause 尝试了很多个参数都不行,不会用。我都不会用pecmd,也没法跟mdyblog大神反馈。。。 |
liuzhaoyzz 发表于 2021-3-27 12:08 设备管理器器 选择显示隐藏设备。看看 |
527104427 发表于 2021-3-27 10:51 哦,那,看来又要通过 api 了 |
微软搞了wtg,也想像Linux那样富驱动,所以现在系统体积最大的累赘就是驱动,不信你看看刚装完和打了驱动以后的体积比较一下。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.