Powershell入門必備(四)
介紹
隨著我們這個系列文章的逐步深入,我們就越能發現powershell的強大之處,而這種強大隻會越來越明顯。
在本篇文章中,我們會探索如何使用powershell來操作模組。這對我們來說是學習Shell/">PowerShell的一個非常有趣和重要的部分,因為它在許多工和操作的自動化方面將會為我們提供許多幫助。
使用powershell模組
正如我們在前面的文章中看到的,模組是PowerShell裡一個非常強大的概念。現在我們會來學習在滲透測試中如何建立和利用它們,特別是用於自動化日常任務。
首先,讓我們記住模組的定義。Microsoft對模組的描述定義是這樣的:
·“模組是包含PowerShell命令的包,例如cmdlets,提供程式,函式,工作流,變數和別名。”
· “編寫命令的人可以使用模組來組織命令並與他人共享命令。接收模組的人可以將模組中的命令新增到他們的PowerShell會話中,並像內建命令一樣使用它們。“ ( ofollow,noindex">微軟官方文件定義 )。
我們可以使用Get-Module 命令獲取可用模組的列表:
該Get-Module命令可以幫助我們獲取已匯入到當前會話中的模組。在我們的示例中,我們使用此命令和-ListAvailable 選項來檢索計算機上安裝的模組,並可以在我們的會話中匯入。新增選項 -All 使我們能夠獲取當前會話中所有可用模組的所有匯出檔案。
我們還可以使用Import-Module 命令非常簡單地匯入模組:
同時,我們也可以使用Remove-Module 命令將其刪除,如下所示:
使用powershell編寫模組
現在讓我們談談如何使用PowerShell建立模組。
PowerShell上的模組的副檔名為“.psm1”。
我們首先建立一個示例模組。首先,我們將在psm1檔案中寫一個函式來建立我們的模組。
除了副檔名外,這個模組檔案沒有什麼特別的,所以我們可以使用包含函式的普通PowerShell指令碼並重命名它來建立psm1檔案。是不是很簡單?
下面我們將使用一個簡單的函式。
這個函式是用來檢查檔案是否存在:
還有一個重要的注意事項:我們必須新增一個模組清單,將其稱為模組。
清單只是新增有關模組的元資料。它包括以下資訊:
· 作者資訊
· 版本
· 自動載入模組
模組清單只是一個儲存為psd1檔案的雜湊表,當我們匯入資料時將載入它。
New-ModuleManifest cmdlet將通過為我們建立清單來幫助我們。
現在我們來生成第一個清單:
清單生成之後是這樣的:
清單中最有趣的屬性之一是FunctionsToExport 屬性。它的預設值為*,匯出所有函式,但我們也可以使用以下語法選擇特定函式:
FunctionsToExport =“GetFunction” 。
最後,我們來談談RootModule。根模組引數會指示應執行哪個PowerShell模組檔案。
不要忘了將所有檔案放在同一個資料夾中,如下所示:
現在我們來進行匯入:
在這個示例中,Import-Module命令會自動查詢psm1檔案。
好了,本篇文章差不多就是這樣。
現在你已經知道如何使用powershell來操作模組了。你會發現這真的非常有用。
總結
powershell中模組的概念十分重要,而且對我們非常有幫助。
在下一篇文章中,我們將開始使用powershell進行實戰利用,並且開始討論使用PowerShell進行遠端處理。
更多精彩內容,敬請期待。