Get-Module
Получает модули, которые были импортированы или могут быть импортированы в текущий сеанс.
Синтаксис
Get-Module [-All] [-ListAvailable] [-Name <string[]>] [<CommonParameters>]
Get-Module [[-Name] <string[]>] [<CommonParameters>]
Описание
Командлет Get-Module возвращает модули, которые были импортированы или могут быть импортированы в сеанс.
Командлет Get-Module только возвращает модули, но не импортирует их. Чтобы импортировать модули в сеанс, воспользуйтесь командлетом Import-Module.
Параметры
-All
Получает объекты модулей для всех файлов модулей.
При запуске без параметра All командлет Get-Module возвращает только объект модуля для файла модуля по умолчанию. Типы файлов выбираются командлетом в следующем порядке: файлы манифеста (PSD1), файлы модулей скрипта (PSM1) и двоичные файлы (DLL).
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ListAvailable
Получает все модули, которые могут быть импортированы в сеанс. Get-Module получает модули, которые хранятся в путях, заданных переменной среды $env:PSModulePath.
При запуске без этого параметра командлет Get-Module получает информацию только о тех модулях, которые были импортированы в сеанс.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Name <string[]>
Получает только модули с заданными именами или шаблонами имен. Подстановочные знаки разрешены. Кроме того, можно передавать имена командлету Get-Module с помощью конвейера.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
All imported or available modules. |
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
true |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.String Можно передать имена модулей командлету Get-Module по конвейеру. |
Выходные данные |
System.Management.Automation.PSModuleInfo Get-Module возвращает объекты, представляющие модули. |
Примечания
Командлет Get-Module также можно вызывать с помощью псевдонима "gmo". Дополнительные сведения см. в разделе About_Aliases.
Параметр All возвращает объекты модулей для всех файлов DLL, даже если они не реализуют командлеты или поставщики.
Пример 1
C:\PS>get-module
Description
-----------
Эта команда получает модули, которые были импортированы в текущий сеанс.
Пример 2
C:\PS>get-module -listAvailable
Description
-----------
Эта команда получает модули, которые могут быть импортированы в текущий сеанс.
Get-Module выполняет поиск доступных модулей в пути, указанном переменной среды $env:PSModulePath. Дополнительные сведения о переменной среды PSModulePath см. в разделах about_Modules и about_Environment_Variables.
Пример 3
C:\PS>get-module -listAvailable -all
Description
-----------
Эта команда получает все экспортированные файлы для всех доступных модулей.
Пример 4
C:\PS>get-module | get-member -type property
TypeName: System.Management.Automation.PSModuleInfo
Name MemberType Definition
---- ---------- ----------
AccessMode Property System.Management.Automation.ModuleAcc
Description Property System.String Description {get;set;}
ExportedAliases Property System.Collections.Generic.Dictionary`
ExportedCmdlets Property System.Collections.Generic.Dictionary`
ExportedFunctions Property System.Collections.Generic.Dictionary`
ExportedVariables Property System.Collections.Generic.Dictionary`
Guid Property System.Guid Guid {get;}
ModuleBase Property System.String ModuleBase {get;}
ModuleType Property System.Management.Automation.ModuleTyp
Name Property System.String Name {get;}
NestedModules Property System.Collections.ObjectModel.ReadOnl
OnRemove Property System.Management.Automation.ScriptBlo
Path Property System.String Path {get;}
PrivateData Property System.Object PrivateData {get;set;}
SessionState Property System.Management.Automation.SessionSt
Version Property System.Version Version {get;}
Description
-----------
Эта команда получает свойства объекта PSModuleInfo, возвращаемого командлетом Get-Module. Для каждого файла модуля возвращается один объект.
Эти свойства можно использовать для форматирования и фильтрации объектов модуля. Дополнительные сведения об этих свойствах см. в разделе "Свойства PSModule" библиотеки MSDN (Microsoft Developer Network) по адресу (на английском языке).
Пример 5
C:\PS>get-module -listAvailable -all | format-table -property name, moduletype, path -groupby name -auto
Name: MyTestCmdlets
Name ModuleType Path
---- ---------- ----
MyTestCmdlets Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestCmdlets\TestCmdlets.dll
Name: PSDiagnostics
Name ModuleType Path
---- ---------- ----
PSDiagnostics Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDiagnostics\PSDiagnostics.psd1
PSDiagnostics Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDiagnostics\PSDiagnostics.psm1
Name: FileTransfer
Name ModuleType Path
---- ---------- ----
FileTransfer Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer\FileTransfer.psd1
Description
-----------
Эта команда получает все файлы модулей (импортированных и доступных) и группирует их по имени модуля. Это позволяет увидеть все файлы модулей, экспортируемые каждым скриптом.
Пример 6
C:\PS>$m = get-module -list -name FileTransfer | where {$_.moduletype -eq "Manifest"}
C:\PS> get-content $m.path
@{
GUID="{8FA5064B-8479-4c5c-86EA-0D311FE48875}"
Author="Microsoft Corporation"
CompanyName="Microsoft Corporation"
Copyright="© Microsoft Corporation. All rights reserved."
ModuleVersion="1.0.0.0"
Description="Windows Powershell File Transfer Module"
PowerShellVersion="2.0"
CLRVersion="2.0"
NestedModules="Microsoft.BackgroundIntelligentTransfer.Management"
FormatsToProcess="FileTransfer.Format.ps1xml"
RequiredAssemblies=Join-Path $psScriptRoot "Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll"
}
Description
-----------
Эти команды отображают содержимое манифеста модуля для модуля Windows PowerShell File Transfer.
Первая команда получает объект PSModuleInfo, представляющий манифест модуля для модуля File Transfer. Она сохраняет объект в переменной $m.
Вторая команда использует обращение через точку, чтобы получить путь к файлу манифеста, который хранится в свойстве Path объекта. Затем она использует командлет Get-Content для получения содержимого файла манифеста по указанному пути.
Модули не обязательно должны иметь файлы манифеста. Если модуль имеет файл манифеста, манифест требуется только для указания номера версии. Однако нередко в файле манифеста содержится полезная информация о модуле, его требованиях и его содержании.
Пример 7
C:\PS>get-module -listAvailable -name FileTransfer | format-list -property *
Name : FileTransfer
Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer\FileTransfer.psd1
Description : Powershell File Transfer Module
Guid : 8fa5064b-8479-4c5c-86ea-0d311fe48875
ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer
PrivateData :
Version : 1.0.0.0
ModuleType : Manifest
AccessMode : ReadWrite
ExportedFunctions : {}
ExportedCmdlets : {}
NestedModules : {}
ExportedVariables : {}
ExportedAliases : {}
SessionState : System.Management.Automation.SessionState
OnRemove :
Description
-----------
Эта команда отображает все свойства модуля FileTransfer в виде списка.
Поскольку модуль еще не был импортирован в сеансе, значения свойств Exported* и свойства NestedModules пока не определены. Значения этих свойств будут определены только после экспорта элементов и создания экземпляров вложенных модулей.
Пример 8
C:\PS>dir (get-module -listavailable FileTransfer).modulebase
Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 12/16/2008 12:36 PM en-US
-a--- 11/19/2008 11:30 PM 16184 FileTransfer.Format.ps1xml
-a--- 11/20/2008 11:30 PM 1044 FileTransfer.psd1
-a--- 12/16/2008 12:20 AM 108544 Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll
Description
-----------
Эта команда выводит список файлов в каталоге модуля. Это еще один способ определить назначение модуля перед его импортом. В комплект поставки некоторых модулей могут входить файлы справки или файлы ReadMe, в которых содержится описание модуля.