<tr id="66666"><input id="66666"></input></tr>
  • <tr id="66666"></tr>
  • <tr id="66666"></tr>
    <legend id="66666"><sup id="66666"></sup></legend>
  • <legend id="66666"></legend>
  • 欢迎访问博易创科技官网,专注研发数码打印机20年!
    全国咨询热线:400-8316492
    联系我们
    400-8316492

    手机:13823737137

    邮箱:3485053954@qq.com

    QQ:3485053954

    地址:深圳市龙岗区横坪公路89号数字硅谷E栋4楼

    当前位置:首页 > 行业新闻 > 技术问题

    桌面运维工具之打印机驱动安装

    时间:2025-02-14 02:29:30 作者:147小编 点击:

    undefined
    undefined
    undefined
    undefined
    undefined

    undefined

     

    1.前言

    桌面运维朋友经?;岽泶蛴』沧罢饫喙さ?,手动安装打印机驱动一般包括以下过程

    1.按照打印机型号网上查询对应打印机驱动

    2.运用cmd命令进入管理员界面

    3.将打印机驱动添加到window系统中

    人工安装需要经过三个过程,操作繁琐,效率较低?;诖?,咱们研发一个自动化安装打印机驱动的程序,让用户能够自动安装打印机驱动,以此减少打印机驱动安装工单,加强运维效率。

    2.技术实现

    咱们能够运用代码的方式实现人工操作的三个过程。这儿,咱们程序上实现和这三个过程类似。

    1.后台管理系统统一守护打印机驱动

    2.运用程序提权,自动进入管理员环境

    3.运用Devcon程序执行打印机驱动安装命令

    后续的所有示例代码以C#为例。

    2.1.后台管理系统

    咱们研发一个后台管理系统,统一守护打印机驱动,这般能够减少重复查询打印机驱动的工作,提高效率。

    系统界面如下:

    经过这个页面守护打印机型号、硬件ID和驱动等关联信息。

    任何设备的硬件ID都是独一的,咱们能够经过程序识别打印机的硬件ID,而后按照硬件ID查找到驱动下载。

    这儿咱们运用window的Win32_PnPEntity来获取硬件的关联信息,其结构如下:

    [Dynamic, Provider("CIMWin32"), UUID("{FE28FD98-C875-11d2-B352-00104BC97924}"), AMENDMENT] class Win32_PnPEntity : CIM_LogicalDevice { uint16 Availability; string Caption; string ClassGuid; string CompatibleID[]; uint32 ConfigManagerErrorCode; boolean ConfigManagerUserConfig; string CreationClassName; string Description; string DeviceID; boolean ErrorCleared; string ErrorDescription; string HardwareID[]; datetime InstallDate; uint32 LastErrorCode; string Manufacturer; string Name; string PNPClass; string PNPDeviceID; uint16 PowerManagementCapabilities[]; boolean PowerManagementSupported; boolean Present; string Service; string Status; uint16 StatusInfo; string SystemCreationClassName; string SystemName; };

    其中Name暗示硬件名叫作,HardwareID暗示硬件id。

    打印机硬件ID识别部分代码如下:

    namespace JwPrinterManage.Helper { internal class USBUtilTest { public static List<USBDeviceInfo> GetAllPrinterUsbList() { List<USBDeviceInfo> list = newList<USBDeviceInfo>(); ManagementObjectCollection collection;using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_PnPEntity")) collection = searcher.Get();foreach (ManagementObject device in collection) { string name = Convert.ToString(device["Name"]); stringdeviceId = Convert.ToString(device["DeviceID"]); string[] HardwareIDArr = (string[])device["HardwareID"]; if (HardwareIDArr == null || HardwareIDArr.Length == 0) { continue; }foreach (var curHardwareId in HardwareIDArr) { if (curHardwareId.Contains("USBPRINT")) { list.Add(newUSBDeviceInfo(curHardwareId, name)); } } } collection.Dispose();return list; } } }

    以上代码能够获取到计算机的所有硬件名叫作、设备ID以及硬件ID,经过办法,咱们能够快速获取打印机的硬件ID,而后按照硬件ID从后台系统中查询驱动并下载到用户本地。

    2.2.程序提权

    安装打印机驱动,程序需要拥有管理员权限,这儿咱们需要经过cmd命令给程序提权,保准程序拥有管理员权限。

    其原理是运用管理员账号和秘码执行cmd运行程序,这般程序就拥有管理员权限。

    部分核心代码如下:

    namespace JwPrinterManage.Helper { internal class AdminUtilsTest { // 运用特定账号和秘码运行程序 private static void run(string userName, string pass, string exePath) { Process process = new Process(); stringstr = pass; SecureString secureString =new SecureString(); foreach (char c instr) secureString.AppendChar(c); process.StartInfo.UserName = userName; process.StartInfo.Password = secureString; process.StartInfo.FileName = exePath; process.StartInfo.UseShellExecute =false; process.Start(); } } }

    2.3.运用Devcon安装驱动

    2.3.1.Devcon.exe简介

    DevCon (Devcon.exe)(即设备掌控台)是一种命令行工具,用于表示相关运行 Windows 的计算机上的设备的仔细信息。 能够运用 DevCon 启用、禁用、安装、配置以及删除设备。

    重点语法如下:

    devcon [/r] command [arguments]

    重点命令如下:

    ?DevCon Enable

    ?DevCon Disable

    ?DevCon Update

    ?DevCon UpdateNI

    ?DevCon Install

    ?DevCon Remove

    ?DevCon Rescan

    ?DevCon Restart

    ?DevCon Reboot

    ?DevCon SetHwID

    ?DevCon ClassFilter

    ?DevCon Dp_add

    ?DevCon Dp_delete

    这儿咱们仔细介绍这些命令,感兴趣的朋友能够查看官方文档: Devcon命令文档。

    2.3.2.Devcon命令安装驱动

    咱们能够运用update命令来安装打印机驱动程序,devcon update命令能够安装任意驱动程序包,详细如下:

    devcon update INFfile HardwareID

    其中INFfile暗示打印机驱动的INF文件,HardwareID暗示打印机的硬件ID。

    显现如下图所示的结果时,暗示打印机驱动安装成功。

    3.总结

    本文重点介绍打印机驱动自动化安装的一个基本实现思路,经过运维工具,咱们能够实现部分桌面工单自动化,帮忙运维同事加强工作效率。同期,本文介绍了经过Win32_PnPEntity获取window硬件信息以及经过Devcon命令安装驱动的办法,这两个办法不仅限于打印机驱动安装的应用,其实质应用场景比较广泛,大众能够经过这些办法研发自动化工具,帮忙加强运维工作效率。

  • 免责声明:部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真
  • 实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快删除处理问答,若不联系则默认允许本站转载。
  • 上一篇:56家企业来招人!坪地2023年第42期招聘信息!
  • 下一篇:打印机提示驱动程序没法运用?