RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

桌面運(yùn)維工具之打印機(jī)驅(qū)動(dòng)安裝

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-09-12 15:29 ? 次閱讀

1.前言

桌面運(yùn)維同學(xué)經(jīng)常會(huì)處理打印機(jī)驅(qū)動(dòng)安裝這類工單,手動(dòng)安裝打印機(jī)驅(qū)動(dòng)通常包含以下步驟:

1.根據(jù)打印機(jī)型號(hào)網(wǎng)上查找對(duì)應(yīng)打印機(jī)驅(qū)動(dòng)

2.使用cmd命令進(jìn)入管理員界面

3.將打印機(jī)驅(qū)動(dòng)添加到window系統(tǒng)中

人工安裝需要經(jīng)過三個(gè)步驟,操作繁瑣,效率較低?;诖?,我們想開發(fā)一個(gè)自動(dòng)化安裝打印機(jī)驅(qū)動(dòng)的程序,讓用戶可以自行安裝打印機(jī)驅(qū)動(dòng),以此減少打印機(jī)驅(qū)動(dòng)安裝工單,提高運(yùn)維效率。

2.技術(shù)實(shí)現(xiàn)

我們可以使用代碼的方式實(shí)現(xiàn)人工操作的三個(gè)步驟。這里,我們程序上實(shí)現(xiàn)也和這三個(gè)步驟類似。

1.后臺(tái)管理系統(tǒng)統(tǒng)一維護(hù)打印機(jī)驅(qū)動(dòng)

2.使用程序提權(quán),自動(dòng)進(jìn)入管理員環(huán)境

3.使用Devcon程序執(zhí)行打印機(jī)驅(qū)動(dòng)安裝命令

后續(xù)的所有示例代碼以C#為例。

2.1.后臺(tái)管理系統(tǒng)

我們開發(fā)一個(gè)后臺(tái)管理系統(tǒng),統(tǒng)一維護(hù)打印機(jī)驅(qū)動(dòng),這樣可以減少重復(fù)查找打印機(jī)驅(qū)動(dòng)的工作,提升效率。

系統(tǒng)界面如下:

chaijie_default.png

通過這個(gè)頁面維護(hù)打印機(jī)型號(hào)、硬件ID和驅(qū)動(dòng)等相關(guān)信息。

任何設(shè)備的硬件ID都是唯一的,我們可以通過程序識(shí)別打印機(jī)的硬件ID,然后根據(jù)硬件ID查詢到驅(qū)動(dòng)下載。

這里我們使用window的Win32_PnPEntity來獲取硬件的相關(guān)信息,其結(jié)構(gòu)如下:

[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。

打印機(jī)硬件ID識(shí)別部分代碼如下:

namespace JwPrinterManage.Helper
{
    internal class USBUtilTest
    {
        public static List GetAllPrinterUsbList()
        {
            List list = new List();

            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"]);
                string deviceId = 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(new USBDeviceInfo(curHardwareId, name));
                    }
                }
            }

            collection.Dispose();
            return list;
        }
    }
}

以上代碼可以獲取到計(jì)算機(jī)的所有硬件名稱、設(shè)備ID以及硬件ID,通過此方法,我們可以快速獲取打印機(jī)的硬件ID,然后根據(jù)硬件ID從后臺(tái)系統(tǒng)中查找驅(qū)動(dòng)并下載到用戶本地。

2.2.程序提權(quán)

安裝打印機(jī)驅(qū)動(dòng),程序需要具有管理員權(quán)限,這里我們需要通過cmd命令給程序提權(quán),保證程序具有管理員權(quán)限。

其原理是使用管理員賬號(hào)和密碼執(zhí)行cmd運(yùn)行程序,這樣程序就具有管理員權(quán)限。

部分核心代碼如下:

namespace JwPrinterManage.Helper
{
    internal class AdminUtilsTest
    {

        // 使用特定賬號(hào)和密碼運(yùn)行程序
        private static void run(string userName, string pass, string exePath)
        {
            Process process = new Process();
            string str = pass;
            SecureString secureString = new SecureString();
            foreach (char c in str)
                secureString.AppendChar(c);
            process.StartInfo.UserName = userName;
            process.StartInfo.Password = secureString;
            process.StartInfo.FileName = exePath;
            process.StartInfo.UseShellExecute = false;
            process.Start();
        }
    }
}

2.3.使用Devcon安裝驅(qū)動(dòng)

2.3.1.Devcon.exe簡介

DevCon (Devcon.exe)(即設(shè)備控制臺(tái))是一種命令行工具,用于顯示有關(guān)運(yùn)行 Windows 的計(jì)算機(jī)上的設(shè)備的詳細(xì)信息。 可以使用 DevCon 啟用、禁用、安裝、配置以及刪除設(shè)備。

其主要語法如下:

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

這里我們不詳細(xì)介紹這些命令,感興趣的同學(xué)可以查看官方文檔: Devcon命令文檔。

2.3.2.Devcon命令安裝驅(qū)動(dòng)

我們可以使用update命令來安裝打印機(jī)驅(qū)動(dòng)程序,devcon update命令可以安裝任意驅(qū)動(dòng)程序包,具體如下:

devcon update INFfile HardwareID

其中INFfile表示打印機(jī)驅(qū)動(dòng)的INF文件,HardwareID表示打印機(jī)的硬件ID。

當(dāng)出現(xiàn)如下圖所示的結(jié)果時(shí),表示打印機(jī)驅(qū)動(dòng)安裝成功。

3.總結(jié)

本文主要介紹打印機(jī)驅(qū)動(dòng)自動(dòng)化安裝的一個(gè)基本實(shí)現(xiàn)思路,通過運(yùn)維工具,我們可以實(shí)現(xiàn)部分桌面工單自動(dòng)化,幫助運(yùn)維同事提高工作效率。同時(shí),本文也介紹了通過Win32_PnPEntity獲取window硬件信息以及通過Devcon命令安裝驅(qū)動(dòng)的方法,這兩個(gè)方法不僅限于打印機(jī)驅(qū)動(dòng)安裝的應(yīng)用,其實(shí)際應(yīng)用場景比較廣泛,大家可以通過這些方法開發(fā)自動(dòng)化工具,幫助提高運(yùn)維工作效率。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 打印機(jī)
    +關(guān)注

    關(guān)注

    10

    文章

    768

    瀏覽量

    45656
  • 驅(qū)動(dòng)安裝
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    8406
  • 運(yùn)維
    +關(guān)注

    關(guān)注

    1

    文章

    256

    瀏覽量

    7564
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎樣安裝pdf打印機(jī)

    怎樣安裝pdf打印機(jī)這個(gè)很簡單了,下載一個(gè)PDF虛擬打印機(jī)就可以了,其實(shí)adobe pdf PRO的軟件就自帶有打印機(jī)?,F(xiàn)在給大家提供一個(gè)打印機(jī)
    發(fā)表于 07-28 10:17

    安裝pdf虛擬打印機(jī)

    安裝pdf虛擬打印機(jī)這個(gè)很簡單了,下載一個(gè)PDF虛擬打印機(jī)就可以了,其實(shí)adobe pdf PRO的軟件就自帶有打印機(jī)?,F(xiàn)在給大家提供一個(gè)打印機(jī)
    發(fā)表于 07-29 09:30

    桌面激光打印機(jī)選購技巧談

    都很注重產(chǎn)品的這一特性,黑白激光打印機(jī)普遍的使用簡單,只要在初次使用時(shí)正確連接電腦和電源,安裝驅(qū)動(dòng)程序,日后就可以一勞永逸了。輸出穩(wěn)定、操作簡單、故障率低,這是激光打印機(jī)的普遍表現(xiàn)。以
    發(fā)表于 03-15 17:20

    打印機(jī)在word不能打印是什么原因

    Word不能打印,原因可能有以下幾種:1、可能沒有安裝打印機(jī)驅(qū)動(dòng)首先檢查一下是否安裝打印機(jī)
    發(fā)表于 01-09 15:27

    打印機(jī)在word不能打印是什么原因

    Word不能打印,原因可能有以下幾種:1、可能沒有安裝打印機(jī)驅(qū)動(dòng)首先檢查一下是否安裝打印機(jī)
    發(fā)表于 03-31 00:08

    如何選擇打印機(jī)進(jìn)行打印?

    打印驅(qū)動(dòng)進(jìn)行打印的,需要在電腦上安裝對(duì)應(yīng)的打印機(jī)驅(qū)動(dòng),然后打開條碼
    發(fā)表于 12-02 15:30

    分享常見的打印機(jī)使用常識(shí)

    今天李哥為大家分享常見的打印機(jī)使用常識(shí)。安裝打印就不用多說了,連接設(shè)備安裝驅(qū)動(dòng)打印機(jī)就可以
    發(fā)表于 01-05 06:11

    使用DLP? Pico?技術(shù)的桌面型3D打印機(jī)的小型光引擎參考設(shè)計(jì)

    。3D打印所帶來的可能性是無限的。 3D打印機(jī)的成本從不到1000美元到超過十萬美元不等。較低價(jià)位的3D打印機(jī)通常被稱為桌面型或個(gè)人3D打印機(jī)
    發(fā)表于 11-08 07:55

    PDF虛擬打印機(jī)安裝教程

    PDF虛擬打印機(jī)安裝教程 虛擬打印機(jī),顧名思義就是虛擬的打印機(jī)。它是一款軟件,能模擬的實(shí)現(xiàn)打印機(jī)的...但如果計(jì)算機(jī)中沒有
    發(fā)表于 03-13 15:27 ?0次下載

    如何安裝pdf打印機(jī)

    如何安裝pdf打印機(jī) 這個(gè)很簡單了,下載一個(gè)PDF虛擬打印機(jī)就可以了,其實(shí)adobe pdf PRO的軟件就自帶有打印機(jī)?,F(xiàn)在給大家提供一個(gè)打印機(jī)
    發(fā)表于 07-28 10:16 ?1.7w次閱讀

    打印機(jī)驅(qū)動(dòng)怎么安裝

    打印機(jī)的運(yùn)行需要特定服務(wù)的支持才能正常工作,該服務(wù)就是“PrintSpooler”,如果要正常安裝和使用打印機(jī),該服務(wù)必需得開啟。
    的頭像 發(fā)表于 04-11 14:54 ?8.2w次閱讀

    打印機(jī)驅(qū)動(dòng)怎么刪除

    打印機(jī)驅(qū)動(dòng)程序(Printer Driving Program),是指電腦輸出設(shè)備打印機(jī)的硬件驅(qū)動(dòng)程序。它是操作系統(tǒng)與硬件之間的紐帶。只有安裝
    的頭像 發(fā)表于 04-12 15:59 ?1.7w次閱讀

    工業(yè)級(jí)3D打印機(jī)桌面級(jí)3D打印機(jī)有什么差別

    相信我們也會(huì)經(jīng)常聽到這兩個(gè)詞,工業(yè)級(jí)3D打印機(jī)桌面級(jí)3D打印機(jī)。雖然都是打印機(jī),但是卻主攻于不同的領(lǐng)域。今天來簡單講講他們的不同之處。
    的頭像 發(fā)表于 11-06 15:09 ?5134次閱讀

    工業(yè)級(jí)3D打印機(jī)桌面級(jí)3D打印機(jī)有哪些不同之處

    ? ? ?相信我們也會(huì)經(jīng)常聽到這兩個(gè)詞,工業(yè)級(jí)3D打印機(jī)桌面級(jí)3D打印機(jī)。雖然都是打印機(jī),但是卻主攻于不同的領(lǐng)域。今天來簡單講講他們的不同之處。? ?
    的頭像 發(fā)表于 12-26 11:19 ?828次閱讀

    canon打印機(jī)怎么用

    以下是一些關(guān)于Canon打印機(jī)使用的基本步驟和技巧: 安裝打印機(jī)驅(qū)動(dòng)程序: 訪問Canon官方網(wǎng)站,根據(jù)您的打印機(jī)型號(hào)下載相應(yīng)的
    的頭像 發(fā)表于 06-14 18:05 ?2134次閱讀
    RM新时代网站-首页