Nejčastější dotazy k Galerie prostředí PowerShell

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.) je možné zabalit do modulů. Moduly obvykle obsahují určité 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žňuje opakované použití a sdílení. Pracovní postupy PowerShellu jsou také skripty PowerShellu, které popisují sadu úloh a poskytují sekvencování těchto úloh. 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 umožňujeme sdílení skriptů, abyste usnadnili přispívání pracovních postupů a skriptů do komunity. Další informace najdete v následujících blogech:

Jak můžu publikovat do Galerie prostředí PowerShell?

Před publikováním balíčků do galerie musíte v Galerie prostředí PowerShell zaregistrovat účet. Důvodem je to, že publikování balíčků vyžaduje NuGetApiKey, které je poskytováno 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 je váš NuGetApiKey dostupný na stránce vašeho profilu.

Po registraci v galerii použijte rutiny Publish-Module nebo Publish-Script k publikování balíčku do galerie. Další podrobnosti o tom, jak tyto rutiny spustit, najdete na kartě Publikovat nebo si přečtěte dokumentaci k modulu Publish 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 "Nepodařilo se zpracovat požadavek". při pokusu o publikování balíčku do Galerie prostředí PowerShell Co to znamená?

Úplná chybová zpráva: "Požadavek se nepovedlo zpracovat". 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, zobrazte stránku profilu.
  • Zadaný název balíčku nepatří vám. Pokud jste potvrdili správnost klíče rozhraní API, pravděpodobně již existuje balíček se stejným názvem jako klíč rozhraní API, který se pokoušíte použít. Tento balíček mohl vlastník zrušit v seznamu, v takovém případě se nezobrazí ve výsledcích hledání. Chcete-li zjistit, zda balíček se stejným názvem již existuje, otevřete prohlížeč a přejděte na stránku podrobností balíčku: https://www.powershellgallery.com/packages/<packageName>. Když například přejdete přímo na https://www.powershellgallery.com/packages/pester stránku podrobností modulu Pester, ať už je v seznamu nebo ne. Pokud balíček s konfliktní název již existuje a není 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 vašeho primárního e-mailového aliasu. Další informace najdete v tématu Microsoft Email Aliasy.

Proč se při výběru všech zaškrtávacích políček Kategorie na kartě Balíčky nezobrazují všechny balíčky galerie?

Zaškrtnutím políčka Kategorie se zobrazí text "Chci zobrazit všechny balíčky v této kategorii". Zobrazí se pouze balíčky ve vybraných kategoriích. Podobně tak, když zaškrtnete všechna zaškrtávací políčka Kategorie, hlásíte "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 lze publikovat jakýkoli druh modulu PowerShellu (skriptové moduly, binární moduly nebo moduly manifestu). K publikování modulu potřebuje PowerShellGet vědět několik věcí – verzi, popis, autor a způsob jeho licence. Tyto informace se čtou 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 oddílu 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, že 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 lze publikovat libovolný typ skriptu PowerShellu (skripty nebo pracovní postupy). K publikování skriptu potřebuje PowerShellGet vědět několik věcí – verze, popis, autor a způsob jeho licence. Tyto informace se čtou jako součást procesu publikování z oddílu PSScriptInfo souboru skriptu nebo z hodnoty parametru LicenseUri rutiny Publish-Script. Všechny skripty publikované v galerii musí mít informace o metadatech. Každý skript, který obsahuje následující informace v části PSScriptInfo, lze publikovat do galerie:

  • Verze
  • Popis
  • Autor
  • Identifikátor URI licenčních podmínek skriptu, a to buď jako součást části PSScriptInfo skriptu, nebo v parametru LicenseUri rutiny Publish-Script .

Návody hledat?

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 vyhledá tato klíčová slova ve všech publikovaných balíčcích, včetně názvů, popisů a napříč metadaty. Pak se na základě váženého skóre kvality zobrazí nejbližší shody. Můžete také hledat podle konkrétního pole pomocí syntaxe pole:"value" ve vyhledávacím dotazu pro následující pole:

  • Značky
  • Functions
  • Rutiny
  • DscResources
  • PowerShellVersion

Když tedy 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 použijte vygenerovaný soubor skriptu jako příklad správného formátování.

Pokud chcete ověřit, že všechna požadovaná pole metadat byla správně vyplněna, použijte rutinu Test-ScriptFileInfo .

Pokud chcete aktualizovat pole metadat skriptu, použijte rutinu Update-ScriptFileInfo .

Jaké další typy modulů PowerShellu existují?

Pojem Modul PowerShellu také odkazuje na soubory, které implementují skutečné funkce. Soubory modulu skriptu (.psm1) obsahují kód PowerShellu. Binární soubory modulů (.dll) obsahují kompilovaný kód.

Tady je jeden ze způsobů, jak o tom přemýšlet: složka, která zapouzdřuje modul, je složka modulu. Složka modulu 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 modulů (.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 modulů skriptu nebo binární soubory modulů. Modul termínů může být matoucí z důvodu těchto různých významů. Pokud není výslovně uvedeno jinak, všechny použití modulu slova na této stránce odkazují na složku modulu obsahující tyto soubory.

Jak se PackageManagement vztahuje k modulu PowerShellGet? (Odpověď vysoké úrovně)

PackageManagement je běžné rozhraní pro práci s libovolným správcem balíčků. Nakonec, ať už pracujete s moduly PowerShellu, msis, gemy Ruby, balíčky NuGet nebo moduly Perl, měli byste být schopni pomocí příkazů PackageManagement (Find-Package a Install-Package) je najít a nainstalovat. PackageManagement to dělá tím, že má zprostředkovatele 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 nainstalují ho místně. Poskytovatelé balíčků často jednoduše zabalí 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íčků PSModule, který zveřejňuje funkce PowerShellGet prostřednictvím PackageManagement. Z tohoto důvodu můžete spustit modul Install-Module nebo Install-Package -Provider PSModule nainstalovat modul z Galerie prostředí PowerShell. Některé funkce PowerShellGet, včetně modulu Update aPublish-Module, nelze získat přístup prostřednictvím příkazů PackageManagement.

Stručně řečeno, PowerShellGet se zaměřuje výhradně na to, že má prostředí pro správu balíčků Premium pro obsah PowerShellu. PackageManagement se zaměřuje na zveřejnění všech prostředí pro správu balíčků prostřednictvím jedné obecné sady nástrojů. Pokud najdete tuto odpověď neuspokojenou, v dolní části tohoto dokumentu existuje dlouhá odpověď v části How to PackageManagement ve skutečnosti souvisí s powershellgetem?

Další informace najdete na stránce projektu PackageManagement.

Jak souvisí NuGet s PowerShellGetem?

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. Úložiště stačí přidat spuštěním rutiny Register-PSRepository .

Znamená to, že můžu pomocí NuGet.exe pracovat s Galerií?

Ano.

Jak balíček PackageManagement ve skutečnosti souvisí s powershellgetem? (Technické podrobnosti)

PowerShellGet 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íčku 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íčku PSModule používá poskytovatele balíčků NuGet k práci s úložištěm.

Diagram architektury PowerShellGet

Obrázek 1: Architektura PowerShellGet

Co je potřeba ke spuštění modulu PowerShellGet?

Obecně doporučujeme vybrat nejnovější verzi modulu PowerShellGet (upozorňujeme, ž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 vyšší. Další informace naleznete v tématu Instalace rozhraní .NET Framework pro vývojáře.

Je možné rezervovat názvy balíčků, které budou publikovány v budoucnu?

Názvy balíčků není možné squat. Pokud máte pocit, že existující balíček získal název, který vyhovuje vašemu balíčku více, zkuste kontaktovat vlastníka balíčku. Pokud jste během několika týdnů nedostali odpověď, můžete kontaktovat podporu a tým Galerie prostředí PowerShell se na ni podívá.

Návody vlastnictví deklarací identity pro balíčky?

Podrobnosti najdete v PowerShellGallery.com správy vlastníků balíčků .

Návody jednat s vlastníkem balíčku, který porušuje moji licenci k balíčku?

Doporučujeme komunitě PowerShellu spolupracovat na řešení jakýchkoli sporů, které mohou nastat mezi vlastníky balíčků a vlastníky jiných balíčků. Vytvořili jsme proces řešenísporůchm PowerShellGallery.com.