使用PowerShell進行建築自動化可能一開始會讓人感到不知所措,但就像任何偉大的努力一樣,關鍵在於一步一步地進行。將PowerShell想像成一組建築積木,模組就像是為其功能帶來生命力的基礎。
在本文中,您將了解PowerShell模組是什麼,如何找到它們,以及如何使用它們來加速自動化任務。從管理虛擬機器到連接雲服務或自動化Active Directory,模組使所有這些都成為可能。
繼續閱讀,發揮PowerShell的全部潛力,精確應對您的任務!
發現可用的PowerShell模組
PowerShell模組是擴展其功能的基本組件。但並非所有模組都會自動加載到您的會話中 – 它們通常保留在系統中,等待被發現。
要探索安裝在您的系統上的模組,請使用Get-Module
命令:
Get-Module
您可能會注意到一個簡短的模組列表。這是因為Get-Module
只顯示已經導入到您的會話中的模組。
要查看系統上所有可用的模組,包括尚未加載的模組,請添加-ListAvailable
參數:
Get-Module -ListAvailable
此命令列出系統上所有可用的模組,無論是否已加載到內存中。隨著您使用它們的命令,PowerShell會自動導入模組,因此通常不需要手動加載它們。
模組可以是各種類型 – 腳本、二進制或清單。
要按類型分組模組以便更輕鬆地檢查,請嘗試這樣做:
gmo -ListAvailable | group ModuleType
在這裡,你可以使用別名便利地進行操作。
例如,gmo
是 Get-Module
的簡寫,group
是 Group-Object
的別名。使用別名在控制台運行命令時可以節省時間。
揭示模組版本和命令詳細信息
每個模組都有一個版本,代表其功能集或隨時間變化。版本控制允許您管理更新或在需要時回退到以前的版本。
模組還包含可通過 ExportedCommands
屬性訪問的命令。
要查看 Microsoft.PowerShell.Management
模組中的命令,運行:
gmo Microsoft.PowerShell.Management | Select-ExpandProperty ExportedCommands
此命令顯示模組中可用的命令列表。
定位模組目錄
模組不會神奇地在 PowerShell 中運行 – 它們存在於系統上的特定目錄中,PowerShell 需要知道如何找到它們。
要顯示可用 PowerShell 模組的位置:
gmo -list
常見位置包括:
- C:\Program Files\PowerShell\7\Modules
- C:\Program Files\WindowsPowerShell\Modules
- C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
即使運行 PowerShell Core,Windows PowerShell 目錄中的模組也可能出現,因為 PowerShell Core 可以使用它們。
模組根據它們的 PSEdition
屬性有專用的類別,這表明其兼容性:
Core
– 適用於 PowerShell Core。桌面
– 设计用于 Windows PowerShell。两者
– 兼容两个版本。
管理 PSModulePath
变量
PowerShell 不会自动搜索整个系统中的模块 – 它依赖于由 PSModulePath
环境变量定义的特定路径。如果一个模块不在这些路径中的任何一个,PowerShell 就无法找到它,即使系统/您在其他位置安装了它。
要查看 PSModulePath
环境变量:
$env:PSModulePath
该变量包含一个以分号分隔的目录列表。
为了更容易阅读,将其拆分成一个数组:
$env:PSModulePath -split ';'
PowerShell 在以下位置搜索模块:
- 用户级目录(例如,您的用户配置文件的文档文件夹)。
- Program Files 中的共享目录。
- 系统级目录,例如 C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules。
您还可以将自定义目录添加到搜索路径中:
$env:PSModulePath + ';C:\MyNewModulePath' $env:PSModulePath
此更改适用于当前会话,指示 PowerShell 在指定路径中查找模块。
结论
在本文中,您了解了如何发现可用模块,查看它们的版本,检查它们的命令,并找到它们的存储目录。您还学会了如何利用 PSModulePath
环境变量来自定义 PowerShell 查找模块的位置。
這些基礎技能使您能夠釋放 PowerShell 在自動化任務中的全部潛力。繼續將這些知識付諸實踐。從探索系統中已有的模組並識別適合當前需求的模組開始。
通過對模組有更深入的了解,您將準備好自信而高效地應對複雜的自動化挑戰!
Source:
https://adamtheautomator.com/powershell-modules-guide/