Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Binární modul může být libovolné sestavení (.dll), které obsahuje třídy rutin. Ve výchozím nastavení se při importu binárního modulu importují všechny rutiny v sestavení. Můžete ale omezit rutiny importované vytvořením manifestu modulu, jehož kořenovým modulem je sestavení. (Například klíč RutinyToExport manifestu lze použít k exportu pouze těch rutin, které jsou potřeba.) Kromě toho může binární modul obsahovat další soubory, adresářovou strukturu a další užitečné informace o správě, které jedna rutina nemůže.
Následující postup popisuje, jak vytvořit a nainstalovat binární modul PowerShellu.
Vytvoření a instalace binárního modulu PowerShellu
Vytvořte binární řešení PowerShellu (například rutinu napsanou v jazyce C#) s potřebnými možnostmi a ujistěte se, že běží správně.
Z pohledu kódu je jádrem binárního modulu jednoduše sestavení rutiny. PowerShell bude ve skutečnosti považovat jedno sestavení rutiny za modul, pokud jde o načítání a uvolňování, bez dalšího úsilí na straně vývojáře. Další informace o psaní rutiny najdete v tématu Zápis rutiny prostředí Windows PowerShell.
V případě potřeby vytvořte zbytek řešení: (další rutiny, soubory XML atd.) a popište je pomocí manifestu modulu.
Kromě popisu sestavení rutin ve vašem řešení může manifest modulu popsat, jak chcete modul exportovat a importovat, jaké rutiny budou vystaveny a jaké další soubory se do modulu dostanou. Jak už jsme uvedli dříve, PowerShell může zacházet s binární rutinou jako s modulem bez dalšího úsilí. Manifest modulu je proto užitečný hlavně pro kombinování více souborů do jednoho balíčku nebo pro explicitní řízení publikování pro dané sestavení. Další informace najdete v tématu Jak napsat manifest modulu PowerShellu.
Následující kód je extrémně jednoduchý blok kódu jazyka C#, který obsahuje tři rutiny ve stejném souboru, který lze použít jako modul.
using System.Management.Automation; // Windows PowerShell namespace. namespace ModuleCmdlets { [Cmdlet(VerbsDiagnostic.Test,"BinaryModuleCmdlet1")] public class TestBinaryModuleCmdlet1Command : Cmdlet { protected override void BeginProcessing() { WriteObject("BinaryModuleCmdlet1 exported by the ModuleCmdlets module."); } } [Cmdlet(VerbsDiagnostic.Test, "BinaryModuleCmdlet2")] public class TestBinaryModuleCmdlet2Command : Cmdlet { protected override void BeginProcessing() { WriteObject("BinaryModuleCmdlet2 exported by the ModuleCmdlets module."); } } [Cmdlet(VerbsDiagnostic.Test, "BinaryModuleCmdlet3")] public class TestBinaryModuleCmdlet3Command : Cmdlet { protected override void BeginProcessing() { WriteObject("BinaryModuleCmdlet3 exported by the ModuleCmdlets module."); } } }
Zabalte řešení a uložte balíček do umístění v cestě modulu PowerShellu.
Globální proměnná prostředí
PSModulePath
popisuje výchozí cesty, které PowerShell použije k vyhledání vašeho modulu. Například běžná cesta k uložení modulu do systému by byla%SystemRoot%\Users\<user>\Documents\WindowsPowerShell\Modules\<moduleName>
. Pokud nepoužíváte výchozí cesty, budete muset explicitně uvést umístění modulu během instalace. Nezapomeňte vytvořit složku pro uložení modulu, protože možná budete potřebovat, aby složka ukládala více sestavení a souborů pro vaše řešení.Mějte na paměti, že technicky vzato nemusíte modul instalovat nikam na
PSModulePath
– to jsou jednoduše výchozí umístění, ve kterých bude PowerShell váš modul hledat. Je to však považováno za osvědčený postup, pokud nemáte dobrý důvod k uložení modulu někam jinam. Další informace najdete v tématu Instalace modulu PowerShell a about_PSModulePath.Importujte modul do PowerShellu pomocí volání Import-Module .
Volání na Import-Module načte modul do aktivní paměti. Pokud používáte PowerShell 3.0 a novější, jednoduše zavolání názvu modulu v kódu ho také naimportuje; Další informace najdete v tématu Import modulu PowerShell.
Import sestavení modulu snap-in jako modulů
Rutiny a zprostředkovatelé, kteří existují v sestaveních snap-in, je možné načíst jako binární moduly. Když jsou sestavení modulu snap-in načtena jako binární moduly, rutiny a zprostředkovatelé v modulu snap-in jsou uživateli k dispozici, ale třída modulu snap-in v sestavení je ignorována a modul snap-in není zaregistrovaný. V důsledku toho rutiny modulu snap-in poskytované prostředím Windows PowerShell nemůžou modul snap-in rozpoznat, i když jsou pro relaci k dispozici rutiny a poskytovatelé.
Kromě toho není možné importovat žádné formátování nebo typy souborů odkazovaných modulem snap-in jako součást binárního modulu. Pokud chcete importovat formátování a typy souborů, musíte vytvořit manifest modulu. Viz Jak napsat manifest modulu PowerShell.