色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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次閱讀
    主站蜘蛛池模板: 无码99久热只有精品视频在线| 99久久久国产精品免费蜜臀| 国产av在在免费线观看美女| 免费毛片播放| 在线看免费毛片| 精品视频在线一区| 亚洲国产欧美在线看片| 国产精品一区二区免费| 视频成人永久免费下载| 国产36d在线观看| 中文无码乱人伦中文视频播放| 美女不要啊| china野外18:19| 色情内射少妇兽交| 护士被老头边摸边吃奶的视频| 亚洲色综合中文字幕在线| 精品夜夜澡人妻无码AV蜜桃| 超碰 无码 中文字幕| 色综合色综合久久综合频道| 毛片免费播放| 精品国产乱码久久久久久夜深人妻| 芳草地在线观看免费观看| 亚洲国产成人一区二区在线| 九九这里有精品| 99国产这里只有精品视频| 欧洲另类一二三四区| 日本不卡三卡四卡| 欧美videosgratis杂交| 精品国产成人系列| 国产婷婷色一区二区三区在线| 国产色婷婷精品人妻蜜桃成熟| 欧美伦理片第7页| 国产免费人成在线看视频| bl肉yin荡受np各种play| 中文字幕午夜乱理片| 亚洲无码小格式| 亚洲成熟人网站| 亚洲 欧洲 国产 日产 综合| 恋夜影视列表免费安卓手机版| 被室友C哭调教双性| eussse手机电影在线观看|