Get-Module
Získá moduly, které byly importovány nebo které lze importovat do aktuální relace.
Syntaxe
Get-Module
[[-Name] <String[]>]
[-FullyQualifiedName <ModuleSpecification[]>]
[-All]
[<CommonParameters>]
Get-Module
[[-Name] <String[]>]
[-FullyQualifiedName <ModuleSpecification[]>]
[-ListAvailable]
[-Refresh]
-CimSession <CimSession>
[-CimResourceUri <Uri>]
[-CimNamespace <String>]
[<CommonParameters>]
Get-Module
[[-Name] <String[]>]
[-FullyQualifiedName <ModuleSpecification[]>]
[-ListAvailable]
[-Refresh]
-PSSession <PSSession>
[<CommonParameters>]
Get-Module
[[-Name] <String[]>]
[-FullyQualifiedName <ModuleSpecification[]>]
[-All]
[-ListAvailable]
[-Refresh]
[<CommonParameters>]
Description
Rutina Get-Module
získá moduly PowerShellu, které byly importovány nebo které je možné importovat, do relace PowerShellu.
Objekt modulu, který Get-Module
vrací, obsahuje cenné informace o modulu.
Objekty modulu můžete také převést na jiné rutiny, jako jsou Import-Module
a rutiny Remove-Module
.
Bez parametrů Get-Module
získá moduly, které byly importovány do aktuální relace.
Pokud chcete získat všechny nainstalované moduly, zadejte parametr ListAvailable.
Get-Module
získá moduly, ale neimportuje je.
Moduly se od windows PowerShellu 3.0 automaticky importují při použití příkazu v modulu, ale příkaz Get-Module
neaktivuje automatický import.
Moduly můžete také importovat do relace pomocí rutiny Import-Module
.
Počínaje Windows PowerShellem 3.0 můžete získat a potom importovat moduly ze vzdálených relací do místní relace.
Tato strategie používá funkci Implicitní vzdálené komunikace PowerShellu a je ekvivalentní použití rutiny Import-PSSession
.
Při použití příkazů v modulech importovaných z jiné relace se příkazy spouští implicitně ve vzdálené relaci. Tato funkce umožňuje spravovat vzdálený počítač z místní relace.
Počínaje windows PowerShellem 3.0 můžete také pomocí Get-Module
a Import-Module
získat a importovat moduly CIM (Common Information Model), ve kterých jsou rutiny definované v souborech CDXML (Definition XML).
Tato funkce umožňuje používat rutiny implementované v nespravovaných sestaveních kódu, jako jsou například rutiny napsané v jazyce C++.
Díky těmto novým funkcím se rutiny Get-Module
a Import-Module
stanou primárními nástroji pro správu heterogenních podniků, které zahrnují počítače s operačním systémem Windows a počítače s jinými operačními systémy.
Pokud chcete spravovat vzdálené počítače se vzdáleným operačním systémem Windows, které mají povolené vzdálené komunikace PowerShellu a PowerShellu, vytvořte na vzdáleném počítači PSSession a potom pomocí parametru PSSession Get-Module
získejte moduly PowerShellu v PSSession.
Při importu modulů a následném použití importovaných příkazů v aktuální relaci se příkazy spouští implicitně v PSSession na vzdáleném počítači.
Tuto strategii můžete použít ke správě vzdáleného počítače.
Podobnou strategii můžete použít ke správě počítačů, které nemají povolenou vzdálené komunikace PowerShellu. Patří sem počítače, které nepoužívají operační systém Windows, a počítače, které mají PowerShell, ale nemají povolenou vzdálené komunikace PowerShellu.
Začněte vytvořením relace CIM na vzdáleném počítači.
Relace CIM je připojení ke službě Windows Management Instrumentation (WMI) ve vzdáleném počítači.
Pak pomocí parametru CIMSessionGet-Module
získejte moduly CIM z relace CIM.
Když importujete modul CIM pomocí rutiny Import-Module
a pak spustíte importované příkazy, příkazy se na vzdáleném počítači spustí implicitně.
Tuto strategii rozhraní WMI a CIM můžete použít ke správě vzdáleného počítače.
Příklady
Příklad 1: Načtení modulů importovaných do aktuální relace
Get-Module
Tento příkaz získá moduly, které byly importovány do aktuální relace.
Příklad 2: Získání nainstalovaných modulů a dostupných modulů
Get-Module -ListAvailable
Tento příkaz získá moduly nainstalované v počítači a lze je importovat do aktuální relace.
Get-Module
hledá dostupné moduly v cestě určené proměnnou prostředí $env:PSModule Path.
Další informace o PSModulePath naleznete v tématu about_Modules a about_Environment_Variables.
Příklad 3: Získání všech exportovaných souborů
Get-Module -ListAvailable -All
Tento příkaz získá všechny exportované soubory pro všechny dostupné moduly.
Příklad 4: Získání modulu podle jeho plně kvalifikovaného názvu
$FullyQualifedName = @{ModuleName="Microsoft.PowerShell.Management";ModuleVersion="3.1.0.0"}
Get-Module -FullyQualifiedName $FullyQualifedName | Format-Table -Property Name,Version
Name Version
---- -------
Microsoft.PowerShell.Management 3.1.0.0
Tento příkaz získá modul Microsoft.PowerShell.Management zadáním plně kvalifikovaného názvu modulu pomocí parametru FullyQualifiedName.
Příkaz pak výsledky předá do rutiny Format-Table
, aby výsledky naformátovat jako tabulku s Name a Verze jako záhlaví sloupců.
Příklad 5: Získání vlastností modulu
Get-Module | Get-Member -MemberType Property | Format-Table Name
Name
----
AccessMode
Author
ClrVersion
CompanyName
Copyright
Definition
Description
DotNetFrameworkVersion
ExportedAliases
ExportedCmdlets
ExportedCommands
ExportedFormatFiles
ExportedFunctions
ExportedTypeFiles
ExportedVariables
ExportedWorkflows
FileList
Guid
HelpInfoUri
LogPipelineExecutionDetails
ModuleBase
ModuleList
ModuleType
Name
NestedModules
OnRemove
Path
PowerShellHostName
PowerShellHostVersion
PowerShellVersion
PrivateData
ProcessorArchitecture
RequiredAssemblies
RequiredModules
RootModule
Scripts
SessionState
Version
Tento příkaz získá vlastnosti PSModuleInfo objekt, který Get-Module
vrátí.
Pro každý soubor modulu je jeden objekt.
Vlastnosti můžete použít k formátování a filtrování objektů modulu. Další informace o vlastnostech naleznete v tématu PSModuleInfo Vlastnosti.
Výstup obsahuje nové vlastnosti, například Author a CompanyName, které byly zavedeny ve Windows PowerShellu 3.0.
Příklad 6: Seskupení všech modulů podle názvu
Get-Module -ListAvailable -All | Format-Table -Property Name, Moduletype, Path -Groupby Name
Name: AppLocker
Name ModuleType Path
---- ---------- ----
AppLocker Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\AppLocker\AppLocker.psd1
Name: Appx
Name ModuleType Path
---- ---------- ----
Appx Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\en-US\Appx.psd1
Appx Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\Appx.psd1
Appx Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\Appx.psm1
Name: BestPractices
Name ModuleType Path
---- ---------- ----
BestPractices Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPractices.psd1
Name: BitsTransfer
Name ModuleType Path
---- ---------- ----
BitsTransfer Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer\BitsTransfer.psd1
Tento příkaz získá všechny soubory modulů, importované i dostupné a pak je seskupí podle názvu modulu. Díky tomu uvidíte soubory modulů, které každý skript exportuje.
Příklad 7: Zobrazení obsahu manifestu modulu
Tyto příkazy zobrazí obsah manifestu modulu pro modul Windows PowerShell BitsTransfer.
Moduly nemusí obsahovat soubory manifestu. Pokud mají soubor manifestu, soubor manifestu se vyžaduje jenom k zahrnutí čísla verze. Soubory manifestu ale často poskytují užitečné informace o modulu, jeho požadavcích a jeho obsahu.
# First command
$m = Get-Module -list -Name BitsTransfer
# Second command
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"
}
První příkaz získá PSModuleInfo objekt, který představuje BitsTransfer modul. Uloží objekt do proměnné $m
.
Druhý příkaz používá rutinu Get-Content
k získání obsahu souboru manifestu v zadané cestě. Používá tečku k získání cesty k souboru manifestu, který je uložen ve vlastnosti Path objektu. Výstup zobrazuje obsah manifestu modulu.
Příklad 8: Výpis souborů v adresáři modulu
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
Tento příkaz zobrazí seznam souborů v adresáři modulu. Toto je další způsob, jak určit, co je v modulu před importem. Některé moduly můžou obsahovat soubory nápovědy nebo soubory ReadMe, které tento modul popisují.
Příklad 9: Získání modulů nainstalovaných v počítači
$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable
Tyto příkazy získají moduly nainstalované na počítači Server01.
První příkaz používá rutinu New-PSSession
k vytvoření psSession na počítači Server01. Příkaz uloží
Druhý příkaz používá PSSession a ListAvailable parametry Get-Module
k získání modulů v PSSession v proměnné $s.
Pokud moduly předáte z jiných relací do rutiny Import-Module
, Import-Module
modul naimportuje do aktuální relace pomocí funkce implicitní vzdálené komunikace.
To je ekvivalentem použití rutiny Import-PSSession
.
Rutiny z modulu můžete použít v aktuální relaci, ale příkazy, které tyto rutiny používají, skutečně spouští vzdálenou relaci.
Další informace najdete v tématu Import-Module
a Import-PSSession
.
Příklad 10: Správa počítače, který nespouští operační systém Windows
Příkazy v tomto příkladu umožňují spravovat systémy úložiště vzdáleného počítače, na kterém není spuštěn operační systém Windows. V tomto příkladu, protože správce počítače nainstaloval zprostředkovatele rozhraní WMI zjišťování modulů, mohou příkazy CIM používat výchozí hodnoty, které jsou určené pro zprostředkovatele.
$cs = New-CimSession -ComputerName RSDGF03
Get-Module -CimSession $cs -Name Storage | Import-Module
Get-Command Get-Disk
CommandType Name ModuleName
----------- ---- ----------
Function Get-Disk Storage
Get-Disk
Number Friendly Name OperationalStatus Total Size Partition Style
------ ------------- ----------------- ---------- ---------------
0 Virtual HD ATA Device Online 40 GB MBR
První příkaz pomocí rutiny New-CimSession
vytvoří relaci ve vzdáleném počítači RSDGF03. Relace se připojí ke službě WMI ve vzdáleném počítači. Příkaz uloží relaci CIM do proměnné $cs
.
Druhý příkaz používá relaci CIM v proměnné $cs
ke spuštění příkazu Get-Module
na RSDGF03 počítači. Příkaz k zadání modulu Storage používá parametr Name. Příkaz pomocí operátoru kanálu (|) odešle modul Storage do rutiny Import-Module
, která ho naimportuje do místní relace.
Třetí příkaz spustí rutinu Get-Command
na příkazu Get-Disk
v modulu Storage.
Když importujete modul CIM do místní relace, PowerShell převede soubory CDXML, které představují modul CIM, na skripty PowerShellu, které se zobrazí jako funkce v místní relaci.
Čtvrtý příkaz spustí příkaz Get-Disk
. Přestože je příkaz zadán v místní relaci, spouští se implicitně na vzdáleném počítači, ze kterého byl importován. Příkaz získá objekty ze vzdáleného počítače a vrátí je do místní relace.
Parametry
-All
Označuje, že tato rutina získá všechny moduly v každé složce modulu, včetně vnořených modulů, souborů manifestu (.psd1), souborů modulu skriptu (.psm1) a binárních modulů (.dll).
Bez tohoto parametru Get-Module
získá pouze výchozí modul v každé složce modulu.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CimNamespace
Určuje obor názvů alternativního poskytovatele CIM, který zveřejňuje moduly CIM. Výchozí hodnota je obor názvů zprostředkovatele rozhraní WMI zjišťování modulů.
Tento parametr použijte k získání modulů CIM z počítačů a zařízení, která nepoužívají operační systém Windows.
Tento parametr byl představen ve Windows PowerShellu 3.0.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CimResourceUri
Určuje alternativní umístění pro moduly CIM. Výchozí hodnota je identifikátor URI prostředku zprostředkovatele rozhraní WMI zjišťování modulu ve vzdáleném počítači.
Tento parametr použijte k získání modulů CIM z počítačů a zařízení, která nepoužívají operační systém Windows.
Tento parametr byl představen ve Windows PowerShellu 3.0.
Typ: | Uri |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CimSession
Určuje relaci CIM na vzdáleném počítači. Zadejte proměnnou obsahující relaci CIM nebo příkaz, který získá relaci CIM, například příkaz Get-CimSession.
Get-Module
používá připojení relace CIM k získání modulů ze vzdáleného počítače.
Když modul naimportujete pomocí rutiny Import-Module
a použijete příkazy z importovaného modulu v aktuální relaci, příkazy skutečně běží na vzdáleném počítači.
Tento parametr můžete použít k získání modulů z počítačů a zařízení, na kterých není spuštěn operační systém Windows, a počítačů, které mají PowerShell, ale nemají povolenou vzdálené komunikace PowerShellu.
Parametr CimSession získá všechny moduly v CIMSession. Můžete ale importovat pouze moduly založené na MODELU CIM a XML definice rutiny (CDXML).
Typ: | CimSession |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-FullyQualifiedName
Určuje názvy modulů ve formě ModuleSpecification objekty. Tyto objekty jsou popsány v části Poznámky ModuleSpecification Konstruktor (Hashtable) v knihovně MSDN. Například parametr FullyQualifiedName přijímá název modulu zadaný v následujících formátech:
- @{ModuleName = "modulename"; ModuleVersion = "version_number"}
- @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName a ModuleVersion jsou povinné, ale identifikátor GUID je volitelný.
Parametr FullyQualified Name nelze zadat ve stejném příkazu jako parametr Name.
Typ: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-ListAvailable
Označuje, že tato rutina získá všechny nainstalované moduly.
Get-Module
získá moduly v cestách uvedených v proměnné prostředí PSModulePath.
Bez tohoto parametru Get-Module
získá pouze moduly uvedené v PSModulePath proměnné prostředí a načtené v aktuální relaci.
ListAvailable nevrací informace o modulech, které nejsou nalezeny v proměnné prostředí PSModulePath, i když jsou tyto moduly načteny v aktuální relaci.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Name
Určuje názvy nebo vzory názvů modulů, které tato rutina získá.
Jsou povoleny zástupné znaky.
Názvy můžete také převést na Get-Module
.
Parametr FullyQualified Name nelze zadat ve stejném příkazu jako parametr Name.
Název nemůže přijmout identifikátor GUID modulu jako hodnotu. Pokud chcete vrátit moduly zadáním identifikátoru GUID, použijte místo toho FullyQualifiedName.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-PSSession
Získá moduly v zadané uživatelsky spravované relaci PowerShellu (PSSession).
Zadejte proměnnou obsahující relaci, příkaz, který získá relaci, například příkaz Get-PSSession
, nebo příkaz, který relaci vytvoří, například příkaz New-PSSession
.
Při připojení relace ke vzdálenému počítači je nutné zadat parametr ListAvailable.
Příkaz Get-Module
, který používá parametr PSSession, je ekvivalentní použití Invoke-Command
rutiny ke spuštění příkazu Get-Module -ListAvailable
v PSSession.
Tento parametr byl představen ve Windows PowerShellu 3.0.
Typ: | PSSession |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Refresh
Označuje, že tato rutina aktualizuje mezipaměť nainstalovaných příkazů.
Mezipaměť příkazů se vytvoří při spuštění relace.
Umožňuje rutině Get-Command
získat příkazy z modulů, které nejsou importovány do relace.
Tento parametr je určený pro scénáře vývoje a testování, ve kterých se od spuštění relace změnil obsah modulů.
Když v příkazu zadáte parametr Refresh, je nutné zadat ListAvailable.
Tento parametr byl představen ve Windows PowerShellu 3.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést názvy modulů.
Výstupy
Tato rutina vrací objekty, které představují moduly.
Když zadáte parametr ListAvailable, Get-Module
vrátí ModuleInfoGrouping objekt, což je typ PSModuleInfo objekt, který má stejné vlastnosti a metody.
Poznámky
Počínaje Windows PowerShellem 3.0 se základní příkazy, které jsou součástí PowerShellu, zabalí do modulů. Výjimkou je Microsoft.PowerShell.Core, což je modul snap-in (PSSnapin). Ve výchozím nastavení se do relace přidá jenom modul snap-in Microsoft.PowerShell.Core. Moduly se při prvním použití importují automaticky a můžete je importovat pomocí rutiny
Import-Module
.Počínaje Windows PowerShellem 3.0 se základní příkazy nainstalované pomocí PowerShellu zabalí do modulů. V prostředí Windows PowerShell 2.0 a v hostitelských programech, které vytvářejí relace staršího stylu v novějších verzích PowerShellu, se základní příkazy zabalí do modulů snap-in (PSSnapins). Výjimkou je Microsoft.PowerShell.Core, což je vždy modul snap-in. Vzdálené relace, jako jsou relace spuštěné rutinou
New-PSSession
, jsou také relace ve starším stylu, které zahrnují základní moduly snap-in.Informace o CreateDefault2 metoda, která vytváří novější relace se základními moduly, naleznete v tématu CreateDefault2 Metoda v knihovně MSDN.
Get-Module
získá moduly pouze v umístěních, která jsou uložena v hodnotě proměnné prostředí PSModulePath ($env:PSModulePath). K importu modulů do jiných umístění můžete použít parametr Path rutinyImport-Module
, ale nemůžete je získat pomocí rutinyGet-Module
.Kromě toho se v PowerShellu 3.0 přidaly do objektu, který
Get-Module
vrací nové vlastnosti, které usnadňují získání informací o modulech i před importem. Před importem se vyplní všechny vlastnosti. Patří sem ExportedCommands, ExportedCmdlets a ExportedFunctions vlastnosti, které uvádějí příkazy, které modul exportuje.Parametr ListAvailable získá pouze správně vytvořené moduly, tedy složky, které obsahují alespoň jeden soubor, jehož základní název je stejný jako název složky modulu. Základní název je název bez přípony názvu souboru. Složky, které obsahují soubory s různými názvy, se považují za kontejnery, ale ne moduly.
Pokud chcete získat moduly implementované jako soubory .dll, ale nejsou součástí složky modulu, zadejte parametry ListAvailable a Všechny parametry.
Aby bylo možné používat funkci relace CIM, musí mít vzdálený počítač WS-Management vzdálenou komunikace a rozhraní WMI (Windows Management Instrumentation), což je implementace modelu CIM (Common Information Model) od Microsoftu. Počítač musí mít také zprostředkovatele rozhraní WMI zjišťování modulů nebo alternativního zprostředkovatele rozhraní WMI, který má stejné základní funkce.
Funkci relace CIM můžete použít na počítačích, na kterých není spuštěn operační systém Windows a na počítačích s Windows, které mají PowerShell, ale nemají povolenou vzdálené komunikace PowerShellu.
Parametry CIM můžete také použít k získání modulů CIM z počítačů s povolenou vzdálené komunikace PowerShellu. To zahrnuje místní počítač. Při vytváření relace CIM na místním počítači používá PowerShell k vytvoření relace DCOM místo rozhraní WMI.