PowerShell呼叫大漠外掛(其它com元件)
在Windows日常的運維當中,很少有需要直接操作前端GUI,大多數情況下都是直接後臺操作。
可是有些個別情況,總是需要模擬滑鼠鍵盤點一點,按一按的情況。
PowerShell做為微軟Windows下最強的指令碼語言,像自動化操作這種功能肯定也是需要能實現的才是,畢竟是親兒子。
網上baidu出來的很多技術知識實在是不敢恭維,好在有Google,幫忙解疑了不少。
在國內,關於自動化操作,我的第一個想法就是直接呼叫第三元件,像大漠外掛,這種前人已經造好輪子,我們能直接拿來使用真是一件幸事。
在PowerShell呼叫第三方元件,可以使用New-Object這個cmdlet。檢視這個命令的幫助文件可以發現,這個命令可以建立一個.NET Framework或COM物件的例項
New-Object [-TypeName] <String> [[-ArgumentList] <Object[]>] [-Property <IDictionary>] [<CommonParameters>]
New-Object [-ComObject] <String> [-Strict] [-Property <IDictionary>] [<CommonParameters>]
對於我們想要呼叫大漠外掛使用這個命令就對了。
首先,可以直接網上下載大漠外掛3.1233(這個是免費版本),一般都會有附帶大漠介面說明.chm,裡面有關於這個外掛的各種說明,其它的外掛也差不多是這個原理
然後,根據幫助文件說明,我們把大漠外掛手動註冊到系統裡面,%path%根據系統的檔案路徑對應修改
regsvr32 /s %path%\dm.dll
最後,在PowerShell裡面直接進行呼叫
$dm = New-Object -ComObject dm.dmsoft
dm.ver()
像這個就是輸出大漠的版本號.
但是,在實際操作當可能會出現這樣的錯誤:
上面明明已經通過regsvr32註冊進去了,怎麼還是出現沒有註冊類這樣的錯誤提示呢?
也是折騰了許久才想明白,我自己使用的作業系統是使用64位的作業系統,預設執行的PowerShell也是64位的,而大漠外掛3.1233這個版本是32位!!!!。
對於PowerShell,64位認不到32位的註冊類。明白了這個原由之後,我們就可以很輕鬆的通過使用系統自帶的32位PowerShell來呼叫大漠外掛了。
32位的PowerShell可以在這邊開啟,在這邊可能會出現安全提示,直接選Yes就可以
再次通過呼叫就能正常顯示對com元件的呼叫了