Co je to PowerShell modul?
PowerShell modul je znovupoužitelný balíček obsahující určitou funkcionalitu PowerShellu. Vše v PowerShellu (funkce, proměnné, DSC zdroje atd.) lze zabalit do modulů. Typicky jsou moduly složky obsahující specifické typy souborů uložených na konkrétní cestě. Existuje několik různých typů PowerShell modulů.
Co je PowerShell skript?
PowerShell skript je série příkazů uložených v .ps1 souboru, které umožňují opětovné použití a sdílení. PowerShell workflowy jsou také PowerShell skripty, které popisují sadu úkolů a poskytují jejich pořadí. Pro více informací navštivte prosím Začít s PowerShell Workflow.
Jak se PowerShell skripty liší od PowerShell modulů?
Moduly jsou obecně lepší pro sdílení, ale umožňujeme sdílení skriptů, abychom vám usnadnili přispívání workflow a skriptů do komunity. Pro více informací navštivte následující blogy:
Jak mohu publikovat do Galerie prostředí PowerShell?
Musíte si zaregistrovat účet v Galerie prostředí PowerShell, než můžete publikovat balíčky do galerie. Je to proto, že publikování balíčků vyžaduje NuGetApiKey, který je poskytován při registraci. Pro registraci použijte svůj osobní, pracovní nebo školní účet k přihlášení do Galerie prostředí PowerShell. Při prvním přihlášení je vyžadován jednorázový registrační proces. Poté je váš NuGetApiKey dostupný na vaší profilové stránce.
Jakmile se zaregistrujete v galerii, použijte příkazové nástroje Publish-Module nebo Publish-Script k publikování balíčku do galerie. Pro více informací o tom, jak tyto cmdlety spustit, navštivte záložku Publish nebo si přečtěte dokumentaci Publish-Module a Publish-Script .
Nemusíte se registrovat ani přihlašovat do Galerie, abyste mohli balíčky instalovat nebo ukládat.
Dostal jsem "Nepodařilo se zpracovat žádost." když jsem se pokusil publikovat balíček do Galerie prostředí PowerShell. Co to znamená?
Celá chybová zpráva zní: "Nepodařilo se zpracovat požadavek." 'Specifikovaný API klíč je neplatný nebo nemá oprávnění k přístupu k určenému balíčku.'. Vzdálený server vrátil chybu: (403) Zakázáno."
K této chybě může dojít z následujících důvodů:
- Specifikovaný API klíč je neplatný. Ujistěte se, že jste zadali platný API klíč ze svého účtu. Pro získání API klíče si prohlédněte stránku svého profilu.
- Specifikovaný název balíčku nevlastníte vy. Pokud jste si ověřili, že váš API klíč je správný, může už existovat balíček se stejným názvem jako ten, který se snažíte použít. Balíček mohl být vlastníkem vynechán, v takovém případě se v žádných výsledcích vyhledávání neobjeví. Chcete-li zjistit, zda již existuje balíček se stejným návzem, otevřete prohlížeč a přejděte na stránku s detaily balíčku:
https://www.powershellgallery.com/packages/<packageName>. Například přímým přechodem nahttps://www.powershellgallery.com/packages/pestermodul Pester se dostanete na stránku s detaily modulu, ať už je nezařazený nebo ne. Pokud balíček s protichůdným názvem již existuje a není uveden, můžete:- Vyberte pro svůj balíček jiný název.
- Kontaktujte vlastníky stávajícího balíčku.
Proč se nemohu přihlásit svým osobním účtem, ale mohl jsem se přihlásit už včera?
Upozorňujeme, že váš galeriový účet neumožňuje změny vašeho hlavního e-mailového aliasu. Pro více informací viz Microsoft Email Aliases.
Proč nevidím všechny balíčky galerií, když na záložce balíčků vyberu všechna políčka Kategorie?
Výběrem zaškrtávacího pole Kategorie uvádíte "Chtěl bych vidět všechny balíčky v této kategorii." Zobrazí se pouze balíčky ve vybraných kategoriích. Podobně, když zaškrtnete všechna políčka Kategorie, říkáte "Chtěl bych vidět všechny balíčky v jakékoli kategorii." Některé balíčky v galerii však nepatří do žádné z uvedených kategorií, takže se ve výsledcích neobjeví. Chcete-li vidět všechny balíčky v galerii, odškrtněte všechny kategorie nebo znovu vyberte záložku balíčků.
Jaké jsou požadavky na publikaci modulu do Galerie prostředí PowerShell?
Jakýkoli typ PowerShell modulu (skriptové moduly, binární moduly nebo manifest moduly) může být publikován do galerie. Pro publikaci modulu musí PowerShellGet znát několik věcí o něm – verzi, popis, autora a jak je licencován. Tyto informace jsou čteny jako součást publikačního procesu ze souboru manifest modulu (.psd1) nebo z hodnoty parametru LicenseUri v Publish-Module cmdletu. Všechny moduly publikované v galerii musí mít manifesty modulů. Každý modul, který obsahuje následující informace ve svém manifestu, může být zveřejněn v Galerii:
- Verze
- Description
- Author
- URI k licenčním podmínkám modulu, buď jako součást sekce PrivateData v manifestu, nebo v parametru LicenseUri v cmdletu Publish-Module .
Jak vytvořit správně naformátovaný manifest modulu?
Nejjednodušší způsob, jak vytvořit manifest modulu, je spustit cmdlet New-ModuleManifest . V PowerShellu 5.0 nebo novějším New-ModuleManifest generuje správně naformátovaný manifest modulu s prázdnými poli pro užitečná metadata jako ProjectUri, LicenseUri a Tags. Stačí vyplnit prázdná místa, nebo použít vygenerovaný manifest jako příklad správného formátování.
Pro ověření, že všechna požadovaná metadata pole byla správně vyplněna, použijte cmdlet Test-ModuleManifest .
Pro aktualizaci polí manifestu modulu použijte cmdlet Update-ModuleManifest .
Jaké jsou požadavky na publikaci scénáře v galerii?
Jakýkoli PowerShell skript (skripty nebo workflowy) lze publikovat do galerie. Pro publikaci skriptu musí PowerShellGet znát několik věcí – verzi, popis, autora a jak je licencován. Tyto informace jsou čteny jako součást publikačního procesu ze sekce PSScriptInfo souboru skriptu nebo z hodnoty parametru LicenseUri v Publish-Script cmdletu. Všechny skripty publikované v galerii musí obsahovat metadata. Jakýkoli skript, který obsahuje následující informace v sekci PSScriptInfo, může být publikován v galerii:
- Verze
- Description
- Author
- URI k licenčním podmínkám skriptu, buď jako součást sekce PSScriptInfo skriptu, nebo v parametru LicenseUri v cmdletu Publish-Script .
Jak mám hledat?
Napiš, co hledáš, do textového pole. Například pokud chcete najít moduly související s Azure SQL, stačí napsat "azure sql". Náš vyhledávač bude tato klíčová slova hledat ve všech publikovaných balíčcích, včetně názvů, popisů a metadat. Na základě váženého skóre kvality pak zobrazí nejbližší shody. Můžete také vyhledávat podle konkrétního pole pomocí syntaxe pole:"value" v dotazu pro následující pole:
- Štítky
- Functions
- Cmdlets
- DscResources
- PowerShellVersion
Například když hledáte PowerShellVersion:"2.0", zobrazí se pouze výsledky kompatibilní s PowerShellVersion 2.0 (na základě jejich modulu/skriptového manifestu).
Jak vytvořit správně naformátovaný skriptový soubor?
Nejjednodušší způsob, jak vytvořit správně naformátovaný skriptový soubor, je spustit cmdlet New-ScriptFileInfo . V PowerShell 5.0 New-ScriptFileInfo vygeneruje správně naformátovaný skriptový soubor s prázdnými poli pro užitečná metadata jako ProjectUri, LicenseUri a Tags. Jednoduše doplňte mezery, nebo použijte vygenerovaný skriptový soubor jako příklad správného formátování.
Pro ověření, že všechna požadovaná pole metadat byla správně vyplněna, použijte cmdlet Test-ScriptFileInfo .
Pro aktualizaci polí metadat skriptu použijte cmdlet Update-ScriptFileInfo .
Jaké další typy PowerShell modulů existují?
Termín PowerShell modul také označuje soubory, které skutečně implementují funkčnost. Soubory skriptových modulů (.psm1) obsahují PowerShell kód. Binární modulové soubory (.dll) obsahují zkompilovaný kód.
Zde je jeden způsob, jak o tom přemýšlet: složka, která modul zapouzdřuje, je složka module. Složka modulu může obsahovat manifest modulu (.psd1), který popisuje obsah složky. Soubory, které skutečně vykonávají práci, jsou soubory skriptových modulů (.psm1) a binární soubory modulů (.dll). DSC zdroje se nacházejí ve specifické podsložce a jsou implementovány jako soubory skriptových modulů nebo binární soubory modulů.
Všechny moduly v galerii obsahují manifesty modulů a většina z nich obsahuje soubory skriptových modulů nebo binární soubory modulů. Termín modul může být matoucí kvůli různým významům. Pokud není výslovně uvedeno jinak, všechna použití slova modul na této stránce odkazují na složku modulu obsahující tyto soubory.
Jak souvisí PackageManagement s PowerShellGet? (Odpověď na vyšší úrovni)
PackageManagement je běžné rozhraní pro práci s jakýmkoli správcem balíčků. Nakonec, ať už pracujete s PowerShell moduly, MSI, Ruby gems, NuGet balíčky nebo Perl moduly, měli byste být schopni použít příkazy PackageManagement (Find-Package a Install-Package) k jejich nalezení a instalaci. PackageManagement to dělá tím, že má poskytovatele balíčků pro každý správce balíčků, který se zapojuje do PackageManagement. Poskytovatelé vykonávají veškerou skutečnou práci; stahují obsah z repozitářů a instalují ho lokálně. Často poskytovatelé balíčků jednoduše přizpůsobí existujícím nástrojům pro správce balíčků pro daný typ balíčku.
PowerShellGet je správce balíčků pro PowerShell balíčky. Existuje poskytovatel balíčků PSModule, který umožňuje funkce PowerShellGet prostřednictvím PackageManagement. Díky tomu můžete buď spustit Install-Module, nebo Install-Package -Provider PSModule nainstalovat modul z Galerie prostředí PowerShell.
Některé funkce PowerShellGet, včetně Update-Module a Publish-Module, nejsou přístupné pomocí příkazů PackageManagement.
Shrnuto, PowerShellGet se zaměřuje výhradně na prémiový zážitek ze správy balíčků pro obsah PowerShell. PackageManagement se zaměřuje na zpřístupnění všech zkušeností se správou balíčků prostřednictvím jedné obecné sady nástrojů. Pokud vás tato odpověď neuspokojí, na konci tohoto dokumentu najdete dlouhou odpověď v sekci Jak se Správa balíčků vlastně vztahuje k PowerShellGet? .
Pro více informací navštivte prosím stránku projektu PackageManagement.
Jak souvisí NuGet s PowerShellGetem?
Galerie prostředí PowerShell je upravená verze NuGet Gallery. PowerShellGet používá poskytovatele NuGet pro práci s repozitáři založenými na NuGet, jako je Galerie prostředí PowerShell.
PowerShellGet můžete použít proti jakémukoli platnému NuGet repozitáři nebo sdílenému souboru. Stačí repozitář přidat spuštěním cmdletu Register-PSRepository .
Znamená to, že mohu NuGet.exe použít k práci s Galerií?
Yes.
Jak vlastně souvisí PackageManagement s PowerShellGet? (Technické detaily)
Pod kapotou PowerShellGet silně využívá infrastrukturu PackageManagement.
Na vrstvě PowerShell cmdlet je Install-Module ve skutečnosti tenký obal kolem Install-Package -Provider PSModule.
Na úrovni poskytovatele balíčků PackageManagement poskytovatel balíčků PSModule skutečně volá do jiných poskytovatelů balíčků PackageManagement. Například když pracujete s galeriemi založenými na NuGetu (například Galerie prostředí PowerShell), poskytovatel balíčků PSModule používá poskytovatele balíčků NuGet k práci s repozitářem.
Obrázek 1: Architektura PowerShellGet
Co je potřeba k spuštění PowerShellGet?
Obecně doporučujeme vybrat nejnovější verzi modulu PowerShellGet (poznámka: vyžaduje .NET 4.5).
Modul PowerShellGet vyžaduje PowerShell 3.0 nebo novější.
Proto PowerShellGet vyžaduje jeden z následujících operačních systémů:
- Systém Windows 10
- Windows 8.1 Pro
- Windows 8.1 Enterprise
- Windows 7 SP1
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2008 R2 SP1
PowerShellGet také vyžaduje .NET Framework 4.5 nebo novější. Další informace naleznete v tématu Instalace rozhraní .NET Framework pro vývojáře.
Je možné rezervovat jména pro balíčky, které budou publikovány v budoucnu?
Není možné přemýšlet o názvech balíčků. Pokud máte pocit, že stávající balíček přijal jméno, které vám lépe sedí, zkuste kontaktovat majitele balíčku. Pokud nedostanete odpověď během pár týdnů, můžete kontaktovat podporu a tým Galerie prostředí PowerShell to prověří.
Jak mohu uplatnit vlastnictví balíčků?
Podívejte se na Managing Package Owners na PowerShellGallery.com pro podrobnosti.
Jak mám jednat s majitelem balíčku, který porušuje mou licenci na balík?
Doporučujeme komunitě PowerShell, aby spolupracovala na řešení jakýchkoli sporů, které mohou vzniknout mezi vlastníky balíčků a vlastníky jiných balíčků. Připravili jsme proces řešení sporů , který vás žádáme, abyste dodržovali dříve PowerShellGallery.com než do něj zasáhnou administrátoři.