Mi az a PowerShell modul?
A PowerShell modul egy újrahasználható csomag, amely tartalmaz bizonyos PowerShell funkciókat. A PowerShellben minden (függvények, változók, DSC erőforrások stb.) modulokba csomagolható. Általában a modulok olyan mappák, amelyek bizonyos típusú fájlokat tartalmaznak, amelyeket egy adott útvonalon tárolnak. Többféle PowerShell modul létezik.
Mi az a PowerShell szkript?
A PowerShell szkript egy parancssorozat, amely egy .ps1 fájlban tárolható, hogy lehetővé tegye az újrahasználatot és megosztást. A PowerShell munkafolyamatok egyben PowerShell szkriptek is, amelyek feladatok összesorolását és sorrendjét biztosítanak ezekhez. További információért kérjük, látogasson el a PowerShell munkafolyamatának kezdete oldalra.
Miben különböznek a PowerShell szkriptek a PowerShell moduloktól?
A modulok általában jobbak megosztásra, de engedélyezzük a szkriptmegosztást, hogy könnyebben hozzájárulj munkafolyamatokhoz és szkriptekhez a közösséghez. További információkért lásd a következő blogokat:
Hogyan tudok publikálni a PowerShell-galéria-ben?
Regisztrálnod kell egy fiókot a PowerShell-galéria-ben, mielőtt csomagokat publikálhatnál a Galériába. Ennek oka, hogy a csomagok kiadásához szükséges NuGetApiKey, amelyet regisztrációkor biztosítunk. A regisztrációhoz használd személyes, munkahelyi vagy iskolai fiókodat, hogy bejelentkezz a PowerShell-galéria-be. Az első bejelentkezéskor egyszeri regisztrációs folyamat szükséges. Ezután a NuGetApiKey elérhető a profiloldalán.
Miután regisztráltál a Galériában, használd a Publish-Module vagy Publish-Script cmdlet-eket, hogy kiadd a csomagodat a Galériában. További részletekért a cmdlet-ek futtatásáról látogass el a Közzététel fülre, vagy olvasd el a Publish-Module és Publish-Script dokumentációt.
Nem kell regisztrálni vagy bejelentkezni a Galériába a csomagok telepítéséhez vagy mentéséhez.
Megkaptam: "Nem tudtam feldolgozni a kérelmet." amikor megpróbáltam egy csomagot publikálni a PowerShell-galéria-be. Ez mit jelent?
A teljes hibaüzenet: "Nem feldolgozta a kérelmet." 'A megadott API kulcs érvénytelen, vagy nincs engedélye a megadott csomaghoz való hozzáféréshez.'. A távoli szerver hibát adott vissza: (403) Tiltott."
Ezt a hibát a következők okozhatják:
- A megadott API kulcs érvénytelen. Győződj meg róla, hogy megadtad a fiókod érvényes API kulcsát. Az API kulcs megszerzéséhez nézd meg a profiloldalodat.
- A megadott csomagnév nem a te tulajdonod. Ha megerősítetted, hogy az API kulcsod helyes, akkor lehet, hogy már létezik egy olyan csomag, amelynek ugyanaz a neve, mint amit használni próbálsz. A csomagot a tulajdonos törölhette a listáról, így nem jelenik meg semmilyen keresőtalálatban. Annak megállapítására, hogy létezik-e már azonos nevű csomag, nyiss meg egy böngészőt, és navigálj a csomag részletei oldalára:
https://www.powershellgallery.com/packages/<packageName>. Például, ha közvetlenül benavigálsz,https://www.powershellgallery.com/packages/pestereljutsz a Pester modul részletei oldalára, függetlenül attól, hogy nincs közzétéve, akár nem. Ha egy ellentmondó nevű csomag már létezik és nincs nyilvános, akkor a következőket teheti:- Válassz másik nevet a csomagodhoz.
- Vegye fel a kapcsolatot a meglévő csomag tulajdonosaival.
Miért nem tudok bejelentkezni a személyes fiókommal, de tegnap be tudtam jelentkezni?
Kérjük, vegye figyelembe, hogy a galériafiókja nem fogadja el a fő e-mail álnév változásait. További információért lásd: Microsoft e-mail elbíciók.
Miért nem látom az összes galéria csomagot, amikor kiválasztom az összes Kategória jelölőnégyzetet a csomagok fülön?
Ha kiválaszt egy Kategória jelölőnégyzetet, azt mondod: "Szeretném látni az összes csomagot ebben a kategóriában." Csak a kiválasztott kategóriákban szereplő csomagok jelennek meg. Hasonlóképpen, ha kiválasztod az összes kategória jelölőnégyzetet, azt mondod: "Szeretném látni az összes csomagot bármelyik kategóriában." De néhány csomag a galériában nem tartozik a felsorolt kategóriák egyikébe sem, így nem jelennek meg az eredményekben. Az összes csomag megtekintéséhez a galériában töröld a Kategóriák összes jelölését, vagy válaszd ki újra a csomagok fület.
Mik a követelmények egy modul közzétételéhez a PowerShell-galéria-ben?
Bármilyen PowerShell modul (szkriptmodulok, bináris modulok vagy manifest modulok) közzétehető a galériában. Egy modul közzétételéhez a PowerShellGet-nek néhány dolgot tudnia kell róla – a verziót, leírást, szerzőt és a licencelés módját. Ezt az információt a közzétételi folyamat részeként olvassák el a modul manifest (.psd1) fájlból, vagy a Publish-Module cmdlet LicenseUri paraméterének értékéből. Minden Galériában közzétett modulnak tartalmaznia kell modul manifestjét. Bármely modul, amely a következő információkat tartalmazza a jegyzékében, közzéteheti a Galériában:
- Változat
- Leírás
- Author
- Egy URI a modul licencfeltételeihez, akár a manifest PrivateData szekciójában, akár a Publish-Module cmdlet LicenseUri paraméterében.
Hogyan hozhatok létre helyesen formázott modul manifestet?
A modul manifest létrehozásának legegyszerűbb módja a New-ModuleManifest parancsnok futtatása. PowerShell 5.0 vagy újabb verziókban New-ModuleManifest egy helyesen formázott modul manifestet generál, ahol üres mezők találhatók hasznos metaadatokhoz, mint például ProjectUri, LicenseUri és címkék. Egyszerűen töltsd ki a hiányzó részeket, vagy használd a generált manifestet a helyes formázás példájaként.
Annak ellenőrzéséhez, hogy minden szükséges metaadatmező megfelelően ki van töltve, használja a Test-ModuleManifest cmdlet-et.
A modul manifest fájlmezők frissítéséhez használja az Update-ModuleManifest parancsnokot.
Mik a követelmények egy forgatókönyv kiadásához a Galériában?
Bármilyen PowerShell szkript (szkriptek vagy munkafolyamatok) közzétehető a galériában. Ahhoz, hogy egy szkript publikáljon, a PowerShellGet-nek néhány dolgot kell tudnia róla – a verzióról, leírásról, szerzőről és arról, hogyan van licencelve. Ezt az információt a közzétételi folyamat részeként olvassák el a scriptfájl PSScriptInfo szakaszából, vagy a Publish-Script cmdlet LicenseUri paraméterének értékéből. Minden Galériában közzétett szkriptnek tartalmaznia kell metaadat-adatokat. Bármely szkript, amely a PSScriptInfo szekciójában tartalmazza az alábbi információkat, közzéteheti a Galériában:
- Változat
- Leírás
- Author
- Egy URI a szkript licencfeltételeihez, akár a szkript PSScriptInfo szakaszában, akár a Publish-Script cmdlet LicenseUri paraméterében.
Hogyan keresek?
Írd be, amit keresel, a szövegmezőbe. Például, ha olyan modulokat szeretnél találni, amelyek kapcsolódnak az Azure SQL-hez, egyszerűen írd be a "Azure SQL"-t. Keresőmotorunk minden közzétett csomagban keresi ezeket a kulcsszavakat, beleértve a címeket, leírásokat és a metaadatokat is. Ezután egy súlyozott minőségi pontszám alapján a legközelebbi egyezéseket mutatja meg. A következő mezők keresésében a "value" szintaxissal is kereshetsz konkrét mező alapján:
- Címkék
- Functions
- Parancsmagok (cmdletek)
- DscResources
- PowerShellVersion
Például amikor a PowerShellVersion:"2.0" kifejezésre keresel, csak olyan eredmények jelennek meg, amelyek kompatibilisek a PowerShellVersion 2.0-val (a moduljuk/szkript-kinyilvánítjuk alapján).
Hogyan hozhatok létre helyesen formázott szkriptfájlt?
A legegyszerűbb módja egy megfelelően formázott szkriptfájl létrehozásának, ha futtatod a New-ScriptFileInfo cmdlet-et. A PowerShell 5.0-ban New-ScriptFileInfo helyesen formázott szkriptfájlt generál, üres mezőkkel hasznos metaadatokhoz, mint például ProjectUri, LicenseUri és címkék. Egyszerűen töltsd ki a hiányzó részeket, vagy használd a generált szkriptfájlt a helyes formázás példájaként.
Annak ellenőrzéséhez, hogy minden szükséges metaadatmező megfelelően ki van töltve, használja a Test-ScriptFileInfo cmdlet-et.
A szkript metaadatmezők frissítéséhez használja az Update-ScriptFileInfo cmdlet-et.
Milyen más PowerShell modulok léteznek?
A PowerShell modul kifejezés azokra a fájlokra is utal, amelyek valódi funkcionalitást valósítanak meg. A szkript modul fájlok (.psm1) PowerShell kódot tartalmaznak. A bináris modul fájlok (.dll) lefordított kódot tartalmaznak.
Íme, hogy gondolkodjunk erre: a modult bekapzszulázó mappa a modul mappa. A modul mappa tartalmazhat egy modul manifestet (.psd1), amely leírja a minta tartalmát. A munkát végző fájlok a script modul fájlok (.psm1) és a bináris modulfájlok (.dll). A DSC erőforrások egy adott almappában találhatók, és szkript- vagy bináris modulfájlként valósíthatók meg.
A Galéria összes modulja tartalmaz modul manifesteket, és ezek többsége szkript vagy bináris modul fájlokat tartalmaz. A modul kifejezés zavaros lehet ezek, a különböző jelentések miatt. Hacsak nem külön kifejezetten, ezen az oldalon a modul szó minden használata a fájlokat tartalmazó modul mappára vonatkozik.
Hogyan kapcsolódik a PackageManagement a PowerShellGethez? (Magas szintű válasz)
A PackageManagement egy közös interfész bármely csomagkezelővel való együttműködéshez. Végül, akár PowerShell modulokkal, MSI-kkal, Ruby gyöngyszemekkel, NuGet csomagokkal vagy Perl modulokkal foglalkozol, a PackageManagement parancsait (Find-Package és Install-Package) használhatod a megtaláláshoz és telepítéshez. A PackageManagement ezt úgy végzi, hogy minden csomagkezelőhöz van egy csomagszolgáltató, amely csatlakozik a PackageManagement-hez. A szolgáltatók végzik az összes tényleges munkát; Tartalmat töltenek be a tárolókból, és helyben telepítik a tartalmat. Gyakran a csomagszolgáltatók egyszerűen körbeépítik a meglévő csomagmenedzser eszközöket egy adott csomagtípushoz.
A PowerShellGet a PowerShell csomagkezelője. Van egy PSModule csomagszolgáltató, amely a PowerShellGet funkciókat a PackageManagement-en keresztül mutatja be. Ennek köszönhetően futtathatod az Install-Module-t, vagy Install-Package -Provider PSModule telepíthetsz egy modult a PowerShell-galéria-ből.
Bizonyos PowerShellGet funkciók, köztük a Update-Module és a Publish-Module, nem érhető el PackageManagement parancsokkal.
Összefoglalva, a PowerShellGet kizárólag prémium csomagkezelési élményre koncentrál PowerShell tartalom esetén. A PackageManagement arra fókuszál, hogy minden csomagkezelési élményt egy általános eszközkészleten keresztül tárjon fel. Ha ezt a választ kielégítetlennek találod, a dokumentum végén egy hosszú válasz található, a Hogyan kapcsolódik valójában a PackageManagement a PowerShellGethez? szakaszban.
További információért kérjük, látogasson el a PackageManagement projektoldalra.
Hogyan kapcsolódik a NuGet a PowerShellGethez?
A PowerShell-galéria a NuGet Galéria módosított változata. A PowerShellGet a NuGet szolgáltatót használja NuGet alapú tárolókkal, például a PowerShell-galéria-vel.
Használhatod a PowerShellGet-et bármely érvényes NuGet tároló vagy fájlmegosztás ellen. Egyszerűen csak a repozióriumot kell hozzáadni a Register-PSRepository cmdlet futtatásával.
Ez azt jelenti, hogy használhatom NuGet.exe a Galériával való együttműködéshez?
Igen.
Hogyan kapcsolódik valójában a PackageManagement a PowerShellGethez? (Műszaki részletek)
A PowerShellGet alaposan kihasználja a PackageManagement infrastruktúráját.
A PowerShell cmdlet rétegnél az Install-Module valójában egy vékony burkolat, köré Install-Package -Provider PSModulekerül.
A PackageManagement csomagszolgáltató rétegben a PSModule csomagszolgáltató valójában más PackageManagement csomagszolgáltatókat hív. Például, amikor NuGet-alapú galériákkal dolgozol (például a PowerShell-galéria-vel), a PSModule csomagszolgáltató a NuGet Package Provider-t használja a repoziórium működtetéséhez.
1. ábra: PowerShellGet architektúra
Mi szükséges a PowerShellGet futtatásához?
Általánosságban javasoljuk, hogy válasszuk a PowerShellGet modul legújabb verzióját (fontos megjegyezni, hogy ehhez .NET 4.5 szükséges).
A PowerShellGet modulhoz PowerShell 3.0 vagy újabb verzió szükséges.
Ezért a PowerShellGet az alábbi operációs rendszerek egyikét igényli:
- 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
A PowerShellGet számára a .NET Framework 4.5 vagy annál magasabb verziót is megköveteli. További információ: A .NET-keretrendszer telepítése fejlesztőknek.
Lehetséges a jövőben megjelenő csomagok neveinek fenntartása?
Nem lehet csomagneveket squatálni. Ha úgy érzed, hogy egy meglévő csomag azt a nevet vette fel, ami jobban illik hozzá, próbáld meg felvenni a kapcsolatot a csomag tulajdonosával. Ha pár héten belül nem kaptál választ, felveheted a kapcsolatot a támogatással, és a PowerShell-galéria csapata utánanéz.
Hogyan igényelhetem a csomagok tulajdonjogát?
Részletekért nézd meg a Managing Package Owners on PowerShellGallery.com oldalt.
Hogyan kezeljek egy csomagtulajdonost, aki megsérti a csomagengedélyemet?
Bátorítjuk a PowerShell közösséget, hogy együttműködjenek a csomagtulajdonosok és más csomagok tulajdonosai közötti esetleges viták megoldásában. Kidolgoztunk egy vitarendezési folyamatot , amelyet arra kérjük, hogy kövesse PowerShellGallery.com adminisztrátorok közbeavatkozása.