Nejčastější dotazyFrequently Asked Questions

Co je modul PowerShellu?What is a PowerShell module?

Modul PowerShell je opakovaně použitelný balíček, který obsahuje některé funkce prostředí PowerShell.A PowerShell module is a reusable package containing some PowerShell functionality. Vše v PowerShellu (funkce, proměnné, prostředky DSC atd.) může být zabaleno v modulech.Everything in PowerShell (functions, variables, DSC resources, etc.) can be packaged in modules. Moduly jsou obvykle složky obsahující konkrétní typy souborů uložené na konkrétní cestě.Typically, modules are folders containing specific types of files stored on a specific path. Existuje několik různých typů modulů PowerShellu.There are a few different types of PowerShell modules out there.

Co je skript PowerShellu?What is a PowerShell script?

PowerShellový skript je série příkazů, které jsou uložené v souboru. ps1 pro povolení opakovaného použití a sdílení.A PowerShell script is a series of commands that are stored in a .ps1 file to enable reuse and sharing. Pracovní postupy PowerShellu jsou také skripty PowerShellu, které popisují sadu úkolů a poskytují sekvencování pro tyto úlohy.PowerShell workflows are also PowerShell scripts, which outline a set of tasks and provide sequencing for those tasks. Další informace najdete na Začínáme s pracovním postupem prostředí PowerShell.For more information, please visit Getting Started with PowerShell Workflow.

Jak se liší skripty PowerShellu v modulech PowerShellu?How are PowerShell Scripts different from PowerShell Modules?

Moduly jsou všeobecně lepší pro sdílení, ale povolujeme sdílení skriptů, které usnadňuje přispívání pracovních postupů a skriptů do komunity.Modules are generally better for sharing, but we are enabling script sharing to make it easier for you to contribute workflows and scripts to the community. Další informace najdete na následujících blogu:For more information, see the following blogs:

Aby bylo možné publikovat balíčky do galerie, je nutné nejprve zaregistrovat účet v Galerie prostředí PowerShell.You must register an account in the PowerShell Gallery before you can publish packages to the Gallery. Důvodem je to, že publikování balíčků vyžaduje NuGetApiKey, který je k dispozici při registraci.This is because publishing packages requires a NuGetApiKey, which is provided upon registration. Pokud se chcete zaregistrovat, použijte svůj osobní, pracovní nebo školní účet a přihlaste se k Galerie prostředí PowerShell.To register, use your personal, work, or school account to sign in to the PowerShell Gallery. Při prvním přihlášení se vyžaduje proces registrace v jednom čase.A one-time registration process is required when you sign in for the first time. Následně je vaše NuGetApiKey k dispozici na stránce vašeho profilu.Afterwards, your NuGetApiKey is available on your profile page.

Po registraci v galerii použijte rutiny Publish [-Module][] nebo Publish-Script k publikování balíčku do galerie.Once you have registered in the Gallery, use the Publish-Module or Publish-Script cmdlets to publish your package to the Gallery. Další podrobnosti o tom, jak tyto rutiny spustit, najdete na kartě publikovat nebo v [dokumentaci k publikování a][] [publikování skriptu][] .For more details on how to run these cmdlets, visit the Publish tab, or read the Publish-Module and Publish-Script documentation.

K instalaci nebo ukládání balíčků není nutné, abyste se zaregistrovali nebo přihlásili do galerie.You do not need to register or sign in to the Gallery to install or save packages.

K této chybě může dojít z následujících důvodů:This error can occur for the following reasons:

  • Zadaný klíč rozhraní API je neplatný.The specified API key is invalid. Ujistěte se, že jste zadali platný klíč rozhraní API z vašeho účtu.Ensure that you have specified the valid API key from your account. Pokud chcete získat klíč rozhraní API, zobrazte si stránku vašeho profilu.To get your API key, view your profile page.
  • Zadaný název balíčku vám nepatří.The specified package name is not owned by you. Pokud jste ověřili, že klíč rozhraní API je správný, možná už existuje balíček se stejným názvem, jako má ten, který se pokoušíte použít.If you have confirmed that your API key is correct, then there may already exist a package with the same name as the one you are trying to use. Je možné, že vlastník balíčku není uveden v seznamu. v takovém případě se nezobrazí ve výsledcích hledání.The package may have been unlisted by the owner, in which case it will not appear in any search results. Chcete-li zjistit, zda 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>.To determine if a package with the same name already exists, open a browser and navigate to the package's details page: https://www.powershellgallery.com/packages/<packageName>. Například přechod přímo na https://www.powershellgallery.com/packages/pester stránku přejde na stránku podrobností modulu platformy pester, zda je neuvedený nebo nikoli.For example, navigating directly to https://www.powershellgallery.com/packages/pester will take you to the Pester module's details page, whether it is unlisted or not. Pokud balíček s konfliktním názvem již existuje a není v seznamu, můžete:If a package with a conflicting name already exists and is unlisted, you can:
    • Pro balíček vyberte jiný název.Select another name for your package.
    • Kontaktujte vlastníky stávajícího balíčku.Contact the owners of the existing package.

Proč se nemůžu přihlásit pomocí osobního účtu, ale můžu se přihlásit včera?Why can't I sign in with my personal account, but I could sign in yesterday?

Uvědomte si prosím, že váš účet Galerie nesplňuje změny vašeho primárního e-mailového aliasu.Please be aware that your gallery account does not accommodate changes to your primary email alias. Další informace najdete v tématu aliasy e-mailu Microsoftu.For more information, see Microsoft Email Aliases.

Když vyberete zaškrtávací políčko kategorie, zobrazí se zpráva "budu chtít zobrazit všechny balíčky v této kategorii".By selecting a Category checkbox, you are stating "I would like to see all packages in this category." Zobrazí se pouze balíčky ve vybraných kategoriích.Only the packages in the selected categories will be displayed. Podobně tak, že vyberete všechna zaškrtávací políčka kategorií, zobrazí se zpráva "budu chtít zobrazit všechny balíčky v libovolné kategorii".So similarly, by selecting all the Category checkboxes, you are stating "I would like to see all packages in any category." Některé balíčky v galerii ale nepatří do žádné z uvedených kategorií, takže se ve výsledcích nezobrazí.But some packages in the gallery do not belong to any of the categories listed, so they will not appear in the results. Chcete-li zobrazit všechny balíčky v galerii, zrušte zaškrtnutí všech kategorií nebo znovu vyberte kartu balíčky.To see all packages in the gallery, uncheck all the Categories, or select the packages tab again.

Do galerie můžete publikovat jakýkoli druh modulu PowerShellu (moduly skriptu, binární moduly nebo moduly manifestu).Any kind of PowerShell module (script modules, binary modules, or manifest modules) can be published to the gallery. Aby bylo možné publikovat modul, PowerShellGet potřebuje znát několik věcí, jejichž verze, popis, autor a způsob licencování.To publish a module, PowerShellGet needs to know a few things about it - the version, description, author, and how it is licensed. Tyto informace jsou čteny jako součást procesu publikování ze souboru manifestu modulu (. psd1), nebo z hodnoty parametru LicenseUri rutiny Publish-Module .This information is read as part of the publishing process from the module manifest (.psd1) file, or from the value of the Publish-Module cmdlet's LicenseUri parameter. Všechny moduly publikované do galerie musí obsahovat manifesty modulů.All modules published to the Gallery must have module manifests. Do galerie se dá publikovat libovolný modul, který obsahuje následující informace ve svém manifestu:Any module that includes the following information in its manifest can be published to the Gallery:

  • VersionVersion
  • PopisDescription
  • AutorAuthor
  • Identifikátor URI licenčních podmínek modulu, buď jako součást oddílu PrivateData manifestu, nebo v parametru LicenseUri rutiny Publish-Module .A URI to the license terms of the module, either as part of the PrivateData section of the manifest, or in the LicenseUri parameter of the Publish-Module cmdlet.

Návody vytvořit správně formátovaný manifest modulu?How do I create a correctly-formatted module manifest?

Nejjednodušší způsob, jak vytvořit manifest modulu, je spuštění rutiny New-ModuleManifest .The easiest way to create a module manifest is to run the New-ModuleManifest cmdlet. V prostředí PowerShell 5,0 nebo novější vytvoří rutina New-ModuleManifest správně formátovaný manifest modulu s prázdnými poli pro užitečná metadata, jako je projecturi, LicenseUria Tags.In PowerShell 5.0 or newer, New-ModuleManifest generates a correctly-formatted module manifest with blank fields for useful metadata like ProjectUri, LicenseUri, and Tags. Stačí vyplnit prázdné znaky nebo jako příklad správného formátování použít vygenerovaný manifest.Simply fill in the blanks, or use the generated manifest as an example of correct formatting.

Chcete-li ověřit, zda byla všechna požadovaná pole metadat správně vyplněna, použijte rutinu test-ModuleManifest .To verify that all required metadata fields have been properly filled, use the Test-ModuleManifest cmdlet.

Chcete-li aktualizovat pole souboru manifestu modulu, použijte rutinu Update-ModuleManifest .To update the module manifest file fields, use the Update-ModuleManifest cmdlet.

Do galerie můžete publikovat jakýkoli druh skriptu PowerShellu (skripty nebo pracovní postupy).Any kind of PowerShell script (scripts or workflows) can be published to the gallery. Aby bylo možné publikovat skript, PowerShellGet potřebuje znát několik věcí, jejichž verze, popis, autor a způsob licencování.To publish a script, PowerShellGet needs to know a few things about it - the version, description, author, and how it is licensed. Tyto informace se čtou jako součást procesu publikování z oddílu souboru skriptu PSScriptInfo nebo z hodnoty parametru Publish-Script rutiny LicenseUri .This information is read as part of the publishing process from the script file's PSScriptInfo section, or from the value of the Publish-Script cmdlet's LicenseUri parameter. Všechny skripty publikované do galerie musí obsahovat informace o metadatech.All scripts published to the Gallery must have metadata information. Všechny skripty, které do své části PSScriptInfo obsahují následující informace, mohou být publikovány do Galerie:Any script that includes the following information in its PSScriptInfo section can be published to the Gallery:

  • VersionVersion
  • PopisDescription
  • AutorAuthor
  • 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 .A URI to the license terms of the script, either as part of the PSScriptInfo section of the script, or in the LicenseUri parameter of the Publish-Script cmdlet.

Do textového pole zadejte, co hledáte.Type what you are looking for in the text box. Pokud například chcete najít moduly, které souvisejí s Azure SQL, stačí zadat "Azure SQL".For example, if you want to find modules that are related to Azure SQL, just type "azure sql". Náš vyhledávací web bude hledat Tato klíčová slova ve všech publikovaných balíčcích, včetně názvů, popisů a napříč metadaty.Our search engine will look for those keywords in all published packages, including titles, descriptions and across metadata. Na základě váženého skóre kvality se pak zobrazí nejbližší shody.Then, based on a weighted quality score, it will display the closest matches. Můžete také Hledat podle konkrétního pole pomocí pole: "hodnota" v dotazu hledání pro následující pole:You can also search by specific field using field:"value" syntax in the search query for the following fields:

  • ZnačkyTags
  • FunctionsFunctions
  • RutinyCmdlets
  • DscResourcesDscResources
  • Verze prostředí PowerShellPowerShellVersion

Takže například při hledání verze prostředí PowerShell: "2.0" budou zobrazeny pouze výsledky, které jsou kompatibilní s verze prostředí PowerShell 2,0 (na základě manifestu modulu/skriptu).So, for example, when you search for PowerShellVersion:"2.0" only results that are compatible with PowerShellVersion 2.0 (based on their module/script manifest) will be displayed.

Návody vytvořit soubor skriptu se správným formátem?How do I create a correctly-formatted script file?

Nejjednodušší způsob, jak vytvořit soubor skriptu se správným formátováním, je spuštění rutiny New-ScriptFileInfo .The easiest way to create a properly-formatted script file is to run the New-ScriptFileInfo cmdlet. V PowerShellu 5,0 rutina New-ScriptFileInfo generuje správně formátovaný soubor skriptu s prázdnými poli pro užitečná metadata, jako je projecturi, LicenseUria Tags.In PowerShell 5.0, New-ScriptFileInfo generates a correctly-formatted script file with blank fields for useful metadata like ProjectUri, LicenseUri, and Tags. Jednoduše vyplňte prázdné znaky nebo použijte vygenerovaný soubor skriptu jako příklad správného formátování.Simply fill in the blanks, or use the generated script file as an example of correct formatting.

Chcete-li ověřit, zda byla všechna požadovaná pole metadat správně vyplněna, použijte rutinu test-ScriptFileInfo .To verify that all required metadata fields have been properly filled, use the Test-ScriptFileInfo cmdlet.

Chcete-li aktualizovat pole metadat skriptu, použijte rutinu Update-ScriptFileInfo .To update the script metadata fields, use the Update-ScriptFileInfo cmdlet.

Jaké další typy modulů PowerShellu existují?What other types of PowerShell Modules exist?

Pojem modul PowerShellu také odkazuje na soubory, které implementují skutečné funkce.The term PowerShell module also refers to the files that implement actual functionality. Soubory modulu skriptu (. psm1) obsahují kód prostředí PowerShell.Script module files (.psm1) contain PowerShell code. Soubory binárních modulů (. dll) obsahují zkompilovaný kód.Binary module files (.dll) contain compiled code.

Tady je jeden ze způsobů, jak si ho představit: složka, která modul zapouzdřuje, je složka modulu.Here is one way to think about it: the folder that encapsulates the module is the module folder. Složka modulu může obsahovat manifest modulu (. psd1), který popisuje obsah složky.The module folder can contain a module manifest (.psd1) that describes the contents of the folder. Soubory, které skutečně dělají práci, jsou soubory modulu skriptu (. psm1) a soubory binárních modulů (. dll).The files that actually do the work are the script module files (.psm1) and the binary module files (.dll). Prostředky DSC se nacházejí v konkrétní podsložce a jsou implementované jako soubory modulu skriptu nebo soubory binárních modulů.DSC resources are located in a specific sub-folder, and are implemented as script module files or binary module files.

Všechny moduly v galerii obsahují manifesty modulů a většina těchto modulů obsahuje soubory skriptovacího modulu nebo soubory binárních modulů.All of the modules in the Gallery contain module manifests, and most of these modules contain script module files or binary module files. Pojem modul může být matoucí z důvodu těchto různých významů.The term module can be confusing because of these different meanings. Pokud není výslovně uvedeno jinak, všechna použití modulu Word na této stránce odkazují na složku modulu obsahující tyto soubory.Unless explicitly stated otherwise, all uses of the word module on this page refer to the module folder containing these files.

Jak PackageManagement souvisí s PowerShellGet?How does PackageManagement relate to PowerShellGet? (Odpověď na vysoké úrovni)(High Level Answer)

PackageManagement je běžné rozhraní pro práci s jakýmkoli správcem balíčků.PackageManagement is a common interface for working with any package manager. Bez ohledu na to, jestli pracujete s moduly PowerShellu, MSIs, Ruby Gems, balíčky NuGet nebo moduly Perl, byste měli být schopni použít příkazy PackageManagement (najít-Package a Install-Package) a vyhledat je a nainstalovat je.Eventually, whether you're dealing with PowerShell modules, MSIs, Ruby gems, NuGet packages, or Perl modules, you should be able to use PackageManagement's commands (Find-Package and Install-Package) to find and install them. PackageManagement to tak, že má poskytovatele balíčku pro každého správce balíčků, který se připojuje k PackageManagement.PackageManagement does this by having a package provider for each package manager that plugs into PackageManagement. Poskytovatelé mají veškerou skutečnou práci; načítají obsah z úložišť a lokálně nainstalují obsah.Providers do all of the actual work; they fetch content from repositories, and install the content locally. Poskytovatelé balíčku se často jednoduše zalomí kolem existujících nástrojů Správce balíčků pro daný typ balíčku.Often, package providers simply wrap around the existing package manager tools for a given package type.

PowerShellGet je správce balíčků pro balíčky PowerShellu.PowerShellGet is the package manager for PowerShell packages. K dispozici je poskytovatel balíčku PSModule, který zpřístupňuje funkce PowerShellGet prostřednictvím PackageManagement.There is a PSModule package provider that exposes PowerShellGet functionality through PackageManagement. Z tohoto důvodu můžete buď spustit rutinu install-Module nebo Install-Package-Provider PSModule a nainstalovat modul z Galerie prostředí PowerShell.Because of this, you can either run Install-Module or Install-Package -Provider PSModule to install a module from the PowerShell Gallery. Některé funkce PowerShellGet, včetně funkcí Update-Module a Publish-Module, nejsou dostupné prostřednictvím příkazů PackageManagement.Certain PowerShellGet functionality, including Update-Module and Publish-Module, cannot be accessed through PackageManagement commands.

V souhrnu se PowerShellGet zaměřuje výhradně na správu balíčků Premium pro obsah prostředí PowerShell.In summary, PowerShellGet is solely focused on having a premium package management experience for PowerShell content. PackageManagement se zaměřuje na zpřístupnění všech prostředí správy balíčků prostřednictvím jedné obecné sady nástrojů.PackageManagement is focused on exposing all package management experiences through one general set of tools. Pokud zjistíte, že se tato odpověď neshoduje, je v dolní části tohoto dokumentu dlouhá odpověď v části jak PackageManagement skutečně souvisí s PowerShellGet? .If you find this answer unsatisfying, there is a long answer at the bottom of this document, in the How does PackageManagement actually relate to PowerShellGet? section.

Další informace najdete na stránce projektu PackageManagement.For more information, please visit the PackageManagement project page.

Jak se na PowerShellGet vztahuje balíček NuGet?How does NuGet relate to PowerShellGet?

Galerie prostředí PowerShell je upravená verze galerie NuGet.The PowerShell Gallery is a modified version of the NuGet Gallery. PowerShellGet využívá poskytovatele NuGet pro práci s úložištěmi založenými na NuGet, jako je Galerie prostředí PowerShell.PowerShellGet uses NuGet provider to work with NuGet based repositories like the PowerShell Gallery.

PowerShellGet můžete použít pro jakékoli platné úložiště NuGet nebo sdílení souborů.You can use PowerShellGet against any valid NuGet repository or file share. Jednoduše stačí přidat úložiště spuštěním rutiny Register-PSRepository .You simply need to add the repository by running the Register-PSRepository cmdlet.

Ano.Yes.

Jak PackageManagement skutečně souvisí s PowerShellGet?How does PackageManagement actually relate to PowerShellGet? (Technické podrobnosti)(Technical Details)

V digestoři PowerShellGet intenzivně využívá infrastrukturu PackageManagement.Under the hood, PowerShellGet heavily leverages PackageManagement infrastructure.

V rámci vrstvy rutiny prostředí PowerShell je [Instalace modulu][] ve skutečnosti úzkým obálkou Install-Package -Provider PSModule.At the PowerShell cmdlet layer, Install-Module is actually a thin wrapper around Install-Package -Provider PSModule.

Ve vrstvě poskytovatele balíčku PackageManagement poskytovatel balíčku PSModule ve skutečnosti volá jiné poskytovatele balíčků PackageManagement.At the PackageManagement package provider layer, the PSModule package provider actually calls into other PackageManagement package providers. Například při práci s galeriemi na bázi NuGet (například Galerie prostředí PowerShell) používá poskytovatel balíčku PSModule zprostředkovatele balíčku NuGet pro práci s úložištěm.For example, when you are working with NuGet-based galleries (such as the PowerShell Gallery), the PSModule package provider uses the NuGet Package Provider to work with the repository.

Architektura PowerShellGet

Obrázek 1: architektura PowerShellGetFigure 1: PowerShellGet Architecture

Co je potřeba ke spuštění PowerShellGet?What is required to run PowerShellGet?

Obecně doporučujeme vybrat nejnovější verzi modulu PowerShellGet (Všimněte si, že vyžaduje .NET 4,5).In general we recommend picking the latest version of PowerShellGet module (note that it requires .NET 4.5).

Modul PowerShellGet vyžaduje PowerShell 3.0 nebo novější.The PowerShellGet module requires PowerShell 3.0 or newer.

Proto PowerShellGet vyžaduje jeden z těchto operačních systémů:Therefore, PowerShellGet requires one of the following operating systems:

  • Windows 10Windows 10
  • Windows 8.1 ProWindows 8.1 Pro
  • Windows 8.1 EnterpriseWindows 8.1 Enterprise
  • Windows 7 SP1Windows 7 SP1
  • Windows Server 2016Windows Server 2016
  • Windows Server 2012 R2Windows Server 2012 R2
  • Windows Server 2008 R2 SP1Windows Server 2008 R2 SP1

PowerShellGet také vyžaduje .NET Framework 4,5 nebo vyšší.PowerShellGet also requires .NET Framework 4.5 or above. Rozhraní .NET Framework 4.5 nebo novější můžete nainstalovat odsud.You can install .NET Framework 4.5 or above from here.

Je možné rezervovat názvy pro balíčky, které budou publikovány v budoucnu?Is it possible to reserve names for packages that will be published in future?

Není možné squatovat názvy balíčků.It is not possible to squat package names. Pokud se domníváte, že existující balíček pozměnil název, který by vyhovoval vašemu balíčku, zkuste kontaktovat vlastníka balíčku.If you feel that an existing package has taken the name which suits your package more, try contacting the owner of the package. Pokud se vám nedostala odpověď během několika týdnů, můžete kontaktovat podporu a tým Galerie prostředí PowerShell do něj bude hledat.If you didn't get response within a couple of weeks, you can contact support and the PowerShell Gallery team will look in to it.

Návody vlastnictví deklarací pro balíčky?How do I claim ownership for packages?

Podrobnosti najdete v podrobnostech o správě vlastníků balíčků na PowerShellGallery.com .Check out Managing Package Owners on PowerShellGallery.com for details.

Návody se zabývat vlastníkem balíčku, který porušuje licenci na balíček?How do I deal with a package owner who is violating my package license?

Komunita PowerShellu doporučuje spolupracovat na řešení všech sporů, které se mohou objevit mezi vlastníky balíčku a vlastníky dalších balíčků.We encourage the PowerShell community to work together to resolve any disputes that may arise between package owners and the owners of other packages. Sestavili jsme proces řešení sporu , který vás vyzve, než PowerShellGallery.com Administrators intercede.We have crafted a dispute resolution process that we ask you to follow before PowerShellGallery.com administrators intercede.