Sdílet prostřednictvím


Import modulu PowerShellu

Po instalaci modulu do systému budete pravděpodobně chtít modul importovat. Import je proces, který modul načte do aktivní paměti, aby k ho uživatel mohl přistupovat ve své relaci PowerShellu. V PowerShellu 2.0 můžete importovat nově nainstalovaný modul PowerShellu s voláním rutiny Import-Module. V PowerShellu 3.0 může PowerShell implicitně importovat modul, když uživatel volá některou z funkcí nebo rutin v modulu. Všimněte si, že obě verze předpokládají, že modul nainstalujete do umístění, kde ho PowerShell dokáže najít; Další informace najdete v tématu Instalace modulu PowerShell. Manifest modulu můžete použít k omezení částí modulu, které se exportují, a pomocí parametrů volání Import-Module omezit importované části.

Import Snap-In (PowerShell 1.0)

Moduly v PowerShellu 1.0 neexistovaly: místo toho jste museli registrovat a používat moduly snap-in. V tomto okamžiku se ale nedoporučuje používat tuto technologii, protože moduly jsou obecně snazší instalovat a importovat. Další informace najdete v tématu Vytvoření modulu snap-in prostředí Windows PowerShell.

Import modulu pomocí Import-Module (PowerShell 2.0)

PowerShell 2.0 používá k importu modulů odpovídající rutinu Import-Module. Při spuštění této rutiny prostředí Windows PowerShell vyhledá zadaný modul v adresářích zadaných v proměnné PSModulePath. Když se zadaný adresář najde, Windows PowerShell vyhledá soubory v následujícím pořadí: soubory manifestu modulu (.psd1), soubory modulu skriptu (.psm1), binární soubory modulů (.dll). Další informace o přidávání adresářů do vyhledávání najdete v tématu about_PSModulePath. Následující kód popisuje, jak importovat modul:

Import-Module myModule

Za předpokladu, že modul myModule byl umístěn v PSModulePath, PowerShell by načetl modul myModule do aktivní paměti. Pokud se modul myModule nenachází v cestě PSModulePath, můžete powershellu explicitně sdělit, kde ho najít:

Import-Module -Name C:\myRandomDirectory\myModule -Verbose

Pomocí parametru -Verbose můžete také zjistit, co se exportuje z modulu a co se importuje do aktivní paměti. Exporty i importy omezují to, co je uživateli vystavené: rozdíl spočívá v tom, kdo řídí viditelnost. Exporty jsou v podstatě řízeny kódem v rámci modulu. Naproti tomu importy jsou řízeny voláním Import-Module. Další informace najdete v tématu Omezení členů importovanýchníže.

Implicitní import modulu (PowerShell 3.0)

Počínaje windows PowerShellem 3.0 se moduly importují automaticky, když se v příkazu použije jakákoli rutina nebo funkce v modulu. Tato funkce funguje na jakémkoli modulu v adresáři, který je součástí hodnoty PSModulePath proměnné prostředí. Pokud modul neuložíte na platnou cestu, můžete je přesto načíst pomocí explicitní importu modulu, jak je popsáno výše.

Následující akce aktivují automatický import modulu, označovaného také jako "automatické načítání modulu".

  • Použití rutiny v příkazu Zadáním Get-ExecutionPolicy například importuje modul Microsoft.PowerShell.Security, který obsahuje rutinu Get-ExecutionPolicy.

  • K získání příkazu použijte rutinu Get-Command. Zadáním Get-Command Get-JobTrigger například importuje modul PSScheduledJob, který obsahuje rutinu Get-JobTrigger. Příkaz Get-Command, který obsahuje zástupné znaky, se považuje za zjišťování a neaktivuje import modulu.

  • Pomocí rutiny Get-Help získáte nápovědu pro rutinu. Zadáním Get-Help Get-WinEvent například importuje modul Microsoft.PowerShell.Diagnostics, který obsahuje rutinu Get-WinEvent.

Pro podporu automatického importu modulů získá rutina Get-Command všechny rutiny a funkce ve všech nainstalovaných modulech, i když se modul neimportuje do relace. Další informace najdete v tématu nápovědy pro rutinu Get-Command.

Proces importu

Při importu modulu se pro modul vytvoří nový stav relace a v paměti se vytvoří objekt System.Management.Automation.PSModuleInfo objekt. Pro každý importovaný modul se vytvoří stav relace (to zahrnuje kořenový modul a všechny vnořené moduly). Členové exportované z kořenového modulu, včetně všech členů exportovaných do kořenového modulu všemi vnořenými moduly, se pak naimportují do stavu relace volajícího.

Metadata členů exportovaných z modulu mají vlastnost ModuleName. Tato vlastnost se naplní názvem modulu, který je exportoval.

Varování

Pokud název exportovaného člena používá neschválené příkazy nebo pokud název člena používá omezené znaky, zobrazí se upozornění při spuštění rutiny Import-Module.

Rutina Import-Module ve výchozím nastavení nevrací žádné objekty do kanálu. Rutina však podporuje PassThru parametr, který lze použít k vrácení objektu System.Management.Automation.PSModuleInfo pro každý importovaný modul. Pokud chcete odeslat výstup hostiteli, měli by uživatelé spustit rutinu Write-Host.

Omezení importovaných členů

Při importu modulu pomocí rutiny Import-Module se ve výchozím nastavení všechny exportované členy modulu importují do relace, včetně všech příkazů exportovaných do modulu vnořeným modulem. Ve výchozím nastavení se proměnné a aliasy neexportují. Chcete-li omezit členy, které jsou exportovány, použijte manifest modulu . Pokud chcete omezit importované členy, použijte následující parametry rutiny Import-Module.

  • funkce: Tento parametr omezuje exportované funkce. (Pokud používáte manifest modulu, podívejte se na klíč FunctionsToExport.)

  • ` rutiny: Tento parametr omezuje exportované rutiny (Pokud používáte manifest modulu, podívejte se na klíč RutinyToExport.)

  • Proměnná: Tento parametr omezuje exportované proměnné (Pokud používáte manifest modulu, podívejte se na klíč VariablesToExport.)

  • Alias: Tento parametr omezuje exportované aliasy (Pokud používáte manifest modulu, podívejte se na klíč AliasesToExport.)

Viz také

psaní modulu Windows PowerShellu