色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

桌面運維工具之打印機驅動安裝

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

1.前言

桌面運維同學經常會處理打印機驅動安裝這類工單,手動安裝打印機驅動通常包含以下步驟:

1.根據打印機型號網上查找對應打印機驅動

2.使用cmd命令進入管理員界面

3.將打印機驅動添加到window系統中

人工安裝需要經過三個步驟,操作繁瑣,效率較低。基于此,我們想開發一個自動化安裝打印機驅動的程序,讓用戶可以自行安裝打印機驅動,以此減少打印機驅動安裝工單,提高運維效率。

2.技術實現

我們可以使用代碼的方式實現人工操作的三個步驟。這里,我們程序上實現也和這三個步驟類似。

1.后臺管理系統統一維護打印機驅動

2.使用程序提權,自動進入管理員環境

3.使用Devcon程序執行打印機驅動安裝命令

后續的所有示例代碼以C#為例。

2.1.后臺管理系統

我們開發一個后臺管理系統,統一維護打印機驅動,這樣可以減少重復查找打印機驅動的工作,提升效率。

系統界面如下:

chaijie_default.png

通過這個頁面維護打印機型號、硬件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 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;
        }
    }
}

以上代碼可以獲取到計算機的所有硬件名稱、設備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();
            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安裝驅動

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命令安裝驅動的方法,這兩個方法不僅限于打印機驅動安裝的應用,其實際應用場景比較廣泛,大家可以通過這些方法開發自動化工具,幫助提高運維工作效率。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 打印機
    +關注

    關注

    10

    文章

    768

    瀏覽量

    45657
  • 驅動安裝
    +關注

    關注

    0

    文章

    10

    瀏覽量

    8406
  • 運維
    +關注

    關注

    1

    文章

    256

    瀏覽量

    7564
收藏 人收藏

    評論

    相關推薦

    怎樣安裝pdf打印機

    怎樣安裝pdf打印機這個很簡單了,下載一個PDF虛擬打印機就可以了,其實adobe pdf PRO的軟件就自帶有打印機?,F在給大家提供一個打印機
    發表于 07-28 10:17

    安裝pdf虛擬打印機

    安裝pdf虛擬打印機這個很簡單了,下載一個PDF虛擬打印機就可以了,其實adobe pdf PRO的軟件就自帶有打印機?,F在給大家提供一個打印機
    發表于 07-29 09:30

    桌面激光打印機選購技巧談

    都很注重產品的這一特性,黑白激光打印機普遍的使用簡單,只要在初次使用時正確連接電腦和電源,安裝驅動程序,日后就可以一勞永逸了。輸出穩定、操作簡單、故障率低,這是激光打印機的普遍表現。以
    發表于 03-15 17:20

    打印機在word不能打印是什么原因

    Word不能打印,原因可能有以下幾種:1、可能沒有安裝打印機驅動首先檢查一下是否安裝打印機
    發表于 01-09 15:27

    打印機在word不能打印是什么原因

    Word不能打印,原因可能有以下幾種:1、可能沒有安裝打印機驅動首先檢查一下是否安裝打印機
    發表于 03-31 00:08

    如何選擇打印機進行打印

    打印驅動進行打印的,需要在電腦上安裝對應的打印機驅動,然后打開條碼
    發表于 12-02 15:30

    分享常見的打印機使用常識

    今天李哥為大家分享常見的打印機使用常識。安裝打印就不用多說了,連接設備安裝驅動打印機就可以
    發表于 01-05 06:11

    使用DLP? Pico?技術的桌面型3D打印機的小型光引擎參考設計

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

    PDF虛擬打印機安裝教程

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

    如何安裝pdf打印機

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

    打印機驅動怎么安裝

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

    打印機驅動怎么刪除

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

    工業級3D打印機桌面級3D打印機有什么差別

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

    工業級3D打印機桌面級3D打印機有哪些不同之處

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

    canon打印機怎么用

    以下是一些關于Canon打印機使用的基本步驟和技巧: 安裝打印機驅動程序: 訪問Canon官方網站,根據您的打印機型號下載相應的
    的頭像 發表于 06-14 18:05 ?2136次閱讀
    主站蜘蛛池模板: 偷拍国产精品在线播放| 欧美内射深插日本少妇| 久久久精品成人免费看| 午夜福利92看看电影80| 粉色视频午夜网站入口| 欧洲内射XXX高清| a级精品九九九大片免费看| 久久亚洲伊人| 依恋影院在线观看| 巨大乳hdbbw| 97视频在线播放| 欧美精品成人久久网站| TUBE19UP老师学生| 日本二区三区欧美亚洲国| 成人在线视频免费看| 日韩精品AV一区二区三区| 纯h超级大尺度小黄文| 色姊姊真舒服| 国产精品久久久久久久久久影院| 午夜精品久久久久久久爽牛战| 国产成人免费不卡在线观看| 午夜家庭影院| 久久www免费人成_看片高清| 26uuu老色哥| 中文字幕一区在线观看视频| 九热这里只有精品| 中字幕视频在线永久在线| 美女扒开腿让男生桶免费看动态图| 91交换论坛| 日本免费一区二区三区四区五六区| 国产成人a在一区线观看高清| 丫鬟粗大狠狠贯穿h| 久久合| 91久久综合精品国产丝袜长腿| 欧洲最大无人区免费高清完整版| 福利视频久久| 亚洲国产精麻豆| 免费看黄的片多多APP下载| 二级毛片在线观看| 亚洲综合中文| 青青热久精品国产亚洲AV无码|