Co je modul PowerShellu?
Modul PowerShellu je opakovaně použitelný balíček obsahující některé funkce PowerShellu. Všechno v PowerShellu (funkce, proměnné, prostředky DSC atd.) se dá zabalit do modulů. Moduly jsou obvykle složky obsahující konkrétní typy souborů uložených na konkrétní cestě. Existuje několik různých typů modulů PowerShellu.
Co je skript PowerShellu?
Skript PowerShellu je řada příkazů uložených v souboru .ps1, které umožňují opakované použití a sdílení. Pracovní postupy PowerShellu jsou také skripty PowerShellu, které popisují sadu úloh a poskytují pořadí pro tyto úlohy. Další informace najdete v tématu Začínáme s pracovním postupem PowerShellu.
Jak se skripty PowerShellu liší od modulů PowerShellu?
Moduly jsou obecně lepší pro sdílení, ale povolujeme sdílení skriptů, které vám usnadní přispívání pracovních postupů a skriptů do komunity. Další informace najdete na následujících blogech:
Jak můžu publikovat na Galerie prostředí PowerShell?
Před publikováním balíčků do galerie musíte zaregistrovat účet v Galerie prostředí PowerShell. Je to proto, že publikování balíčků vyžaduje klíč NuGetApiKey, který se poskytuje při registraci. Pokud se chcete zaregistrovat, přihlaste se k Galerie prostředí PowerShell pomocí svého osobního, pracovního nebo školního účtu. Při prvním přihlášení se vyžaduje jednorázový proces registrace. Potom bude váš Klíč NuGetApiKey k dispozici na stránce vašeho profilu.
Jakmile se zaregistrujete v galerii, pomocí rutin Publish-Module nebo Publish-Script publikujte balíček do galerie. Další podrobnosti o tom, jak tyto rutiny spouštět, najdete na kartě Publikovat nebo si přečtěte dokumentaci k modulu Publish-Module a Publish-Script .
Abyste mohli instalovat nebo ukládat balíčky, nemusíte se do galerie registrovat ani se přihlašovat.
Obdržel(a) jsem zprávu o neúspěšném zpracování žádosti. při pokusu o publikování balíčku do Galerie prostředí PowerShell. Co to znamená?
Úplná chybová zpráva: Nepovedlo se zpracovat žádost. Zadaný klíč rozhraní API je neplatný nebo nemá oprávnění pro přístup k zadané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ů:
- Zadaný klíč rozhraní API je neplatný. Ujistěte se, že jste zadali platný klíč rozhraní API ze svého účtu. Pokud chcete získat klíč rozhraní API, podívejte se na stránku svého profilu.
- Zadaný název balíčku nevlastníte vy. Pokud jste potvrdili, že je klíč rozhraní API správný, možná už existuje balíček se stejným názvem, jaký se pokoušíte použít. Je možné, že vlastník balíček nevejde do seznamu. V takovém případě se nezobrazí ve výsledcích hledání. Pokud chcete zjistit, jestli balíček se stejným názvem již existuje, otevřete prohlížeč a přejděte na stránku s podrobnostmi balíčku:
https://www.powershellgallery.com/packages/<packageName>
. Když například přejdete přímo nahttps://www.powershellgallery.com/packages/pester
, dostanete se na stránku podrobností modulu Pester, ať už je v seznamu neuvedený, nebo ne. Pokud balíček s konfliktním názvem již existuje a není uveden v seznamu, můžete:- Vyberte jiný název balíčku.
- Obraťte se na vlastníky existujícího balíčku.
Proč se nemůžu přihlásit pomocí svého osobního účtu, ale můžu se přihlásit včera?
Mějte na paměti, že váš účet galerie neobsahuje změny primárního e-mailového aliasu. Další informace najdete v tématu Microsoft Email Aliases.
Proč se při zaškrtnutí všech políček Kategorie na kartě balíčky nezobrazují všechny balíčky galerie?
Zaškrtnutím políčka Kategorie zobrazíte zprávu "Chci zobrazit všechny balíčky v této kategorii". Zobrazí se pouze balíčky ve vybraných kategoriích. Podobně když zaškrtnete všechna zaškrtávací políčka Kategorie, zobrazí se zpráva "Chci zobrazit všechny balíčky v libovolné kategorii". Některé balíčky v galerii ale nepatří do žádné z uvedených kategorií, takže se ve výsledcích nezobrazí. Pokud chcete zobrazit všechny balíčky v galerii, zrušte zaškrtnutí všech kategorií nebo znovu vyberte kartu balíčky.
Jaké jsou požadavky na publikování modulu do Galerie prostředí PowerShell?
Do galerie je možné publikovat jakýkoli druh modulu PowerShellu (moduly skriptů, binární moduly nebo moduly manifestu). K publikování modulu potřebuje PowerShellGet vědět několik věcí – verzi, popis, autora a způsob jeho licencování. Tyto informace se načítají jako součást procesu publikování ze souboru manifestu modulu (.psd1) nebo z hodnoty parametru LicenseUri rutiny Publish-Module. Všechny moduly publikované v galerii musí mít manifesty modulů. Jakýkoli modul, který obsahuje následující informace v manifestu, lze publikovat do galerie:
- Verze
- Popis
- Autor
- Identifikátor URI licenčních podmínek modulu, a to buď jako součást části PrivateData manifestu, nebo v parametru LicenseUri rutiny Publish-Module .
Návody vytvořit správně formátovaný manifest modulu?
Nejjednodušší způsob, jak vytvořit manifest modulu, je spustit rutinu New-ModuleManifest . V PowerShellu 5.0 nebo novějším New-ModuleManifest vygeneruje správně formátovaný manifest modulu s prázdnými poli pro užitečná metadata, jako jsou ProjectUri, LicenseUri a Tags. Jednoduše vyplňte prázdné hodnoty nebo použijte vygenerovaný manifest jako příklad správného formátování.
Pokud chcete ověřit, jestli jsou všechna požadovaná pole metadat správně vyplněná, použijte rutinu Test-ModuleManifest .
Pokud chcete aktualizovat pole souboru manifestu modulu, použijte rutinu Update-ModuleManifest .
Jaké jsou požadavky na publikování skriptu do galerie?
Do galerie je možné publikovat jakýkoli druh powershellových skriptů (skriptů nebo pracovních postupů). K publikování skriptu potřebuje PowerShellGet znát několik věcí – verzi, popis, autora a způsob jeho licencování. Tyto informace se načítají jako součást procesu publikování z oddílu PSScriptInfo souboru skriptu nebo z hodnoty parametru LicenseUri rutiny Publish-Script. Všechny skripty publikované do galerie musí obsahovat informace o metadatech. Jakýkoli skript, který obsahuje následující informace v oddílu PSScriptInfo, může být publikován do galerie:
- Verze
- Popis
- Autor
- Identifikátor URI licenčních podmínek skriptu, a to buď jako součást oddílu PSScriptInfo skriptu, nebo v parametru LicenseUri rutiny Publish-Script .
Návody hledání?
Do textového pole zadejte, co hledáte. Pokud například chcete najít moduly, které souvisejí s Azure SQL, stačí zadat "azure sql". Náš vyhledávací web 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 se pak zobrazí nejbližší shody. Můžete také hledat podle konkrétního pole pomocí syntaxe field:"value" ve vyhledávacím dotazu pro následující pole:
- Značky
- Functions
- Rutiny
- DscResources
- Verze Prostředí PowerShell
Když například vyhledáte PowerShellVersion:"2.0", zobrazí se jenom výsledky, které jsou kompatibilní s PowerShellVersion 2.0 (na základě jejich manifestu modulu nebo skriptu).
Návody vytvořit správně formátovaný soubor skriptu?
Nejjednodušší způsob, jak vytvořit správně formátovaný soubor skriptu, je spustit rutinu New-ScriptFileInfo . V PowerShellu 5.0 New-ScriptFileInfo vygeneruje správně formátovaný soubor skriptu s prázdnými poli pro užitečná metadata, jako jsou ProjectUri, LicenseUri a Tags. Jednoduše vyplňte prázdné hodnoty nebo jako příklad správného formátování použijte vygenerovaný soubor skriptu.
Pokud chcete ověřit, jestli jsou všechna požadovaná pole metadat správně vyplněná, použijte rutinu Test-ScriptFileInfo .
Pokud chcete aktualizovat pole metadat skriptu, použijte rutinu Update-ScriptFileInfo .
Jaké další typy modulů PowerShellu existují?
Termín modul PowerShellu také označuje soubory, které implementují skutečné funkce. Soubory modulu skriptů (.psm1) obsahují kód PowerShellu. Binární soubory modulů (.dll) obsahují zkompilovaný kód.
Tady je jeden způsob, jak o tom přemýšlet: složka, která zapouzdřuje modul, je složka modulu. Složka module může obsahovat manifest modulu (.psd1), který popisuje obsah složky. Soubory, které skutečně dělají práci, jsou soubory modulu skriptu (.psm1) a binární soubory modulu (.dll). Prostředky DSC se nacházejí v konkrétní podsložce a implementují se jako soubory modulu skriptu nebo binární soubory modulů.
Všechny moduly v galerii obsahují manifesty modulů a většina těchto modulů obsahuje soubory modulu skriptu nebo binární soubory modulů. Termín modul může být matoucí kvůli těmto 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 packageManagement souvisí s powershellgetem? (Odpověď na vysoké úrovni)
PackageManagement je běžné rozhraní pro práci se správcem balíčků. Ať už pracujete s moduly PowerShellu, rozhraními MSI, gemy Ruby, balíčky NuGet nebo moduly Perl, měli byste být schopni je najít a nainstalovat pomocí příkazů PackageManagement (Find-Package a Install-Package). PackageManagement to dělá tak, že má poskytovatele balíčků pro každého správce balíčků, který se připojuje k PackageManagement. Poskytovatelé dělají veškerou skutečnou práci; načítají obsah z úložišť a instalují ho místně. Poskytovatelé balíčků často jednoduše obtéknou existující nástroje správce balíčků pro daný typ balíčku.
PowerShellGet je správce balíčků pro balíčky PowerShellu. Existuje poskytovatel balíčku PSModule, který zveřejňuje funkce PowerShellGet prostřednictvím PackageManagement. Z tohoto důvodu můžete buď spustit Install-Module, nebo Install-Package -Provider PSModule
nainstalovat modul z Galerie prostředí PowerShell.
Některé funkce PowerShellGet, včetně Funkcí Update-Module a Publish-Module, nelze získat přístup prostřednictvím příkazů PackageManagement.
Stručně řečeno, PowerShellGet se zaměřuje výhradně na prémiové prostředí správy balíčků pro obsah PowerShellu. PackageManagement se zaměřuje na zveřejnění všech prostředí správy balíčků prostřednictvím jedné obecné sady nástrojů. Pokud zjistíte, že tato odpověď je neuspokojivá, najdete v dolní části tohoto dokumentu dlouhou odpověď v části Jak vlastně souvisí PackageManagement s nástrojem PowerShellGet? .
Další informace najdete na stránce projektu PackageManagement.
Jaký je vztah NuGet k PowerShellGetu?
Galerie prostředí PowerShell je upravená verze galerie NuGet. PowerShellGet používá zprostředkovatele NuGet k práci s úložišti založenými na NuGetu, jako je Galerie prostředí PowerShell.
PowerShellGet můžete použít pro libovolné platné úložiště NuGet nebo sdílenou složku. Stačí jednoduše přidat úložiště spuštěním rutiny Register-PSRepository .
Znamená to, že můžu používat NuGet.exe k práci s galerií?
Ano.
Jak packageManagement ve skutečnosti souvisí s powershellgetem? (Technické podrobnosti)
PowerShellGet v poklice výrazně využívá infrastrukturu PackageManagement.
Ve vrstvě rutin PowerShellu je Install-Module ve skutečnosti tenká obálka kolem Install-Package -Provider PSModule
.
Ve vrstvě zprostředkovatele balíčků PackageManagement poskytovatel balíčků PSModule ve skutečnosti volá jiné zprostředkovatele balíčků PackageManagement. Pokud například pracujete s galeriemi založenými na NuGetu (například s Galerie prostředí PowerShell), poskytovatel balíčků PSModule používá poskytovatele balíčků NuGet pro práci s úložištěm.
Obrázek 1: Architektura PowerShellGet
Co je potřeba ke spuštění modulu PowerShellGet?
Obecně doporučujeme vybrat nejnovější verzi modulu PowerShellGet (mějte na paměti, že vyžaduje .NET 4.5).
Modul PowerShellGet vyžaduje PowerShell 3.0 nebo novější.
Proto PowerShellGet vyžaduje jeden z těchto operačních 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 rozhraní .NET Framework 4.5 nebo novější. Další informace najdete v tématu Instalace rozhraní .NET Framework pro vývojáře.
Je možné rezervovat názvy pro balíčky, které budou publikovány v budoucnu?
Názvy balíčků není možné squatovat. Pokud máte pocit, že existující balíček převzal název, který více vyhovuje vašemu balíčku, zkuste kontaktovat vlastníka balíčku. Pokud jste nedostali odpověď během několika týdnů, můžete kontaktovat podporu a tým Galerie prostředí PowerShell se na to podívá.
Návody deklarovat vlastnictví balíčků?
Podrobnosti najdete v tématu Správa vlastníků balíčků na PowerShellGallery.com .
Návody jednat s vlastníkem balíčku, který porušuje moji licenci balíčku?
Doporučujeme, aby komunita PowerShellu spolupracovala na řešení jakýchkoli sporů, ke kterým může dojít mezi vlastníky balíčků a vlastníky jiných balíčků. Vytvořili jsme proces řešení sporů , který vás žádáme, abyste postupovali před tím, než PowerShellGallery.com správci přimluví.