Co to jest moduł programu PowerShell?
Moduł programu PowerShell to pakiet wielokrotnego użytku zawierający niektóre funkcje programu PowerShell. Wszystko w programie PowerShell (funkcje, zmienne, zasoby DSC itp.) można spakować w modułach. Zazwyczaj moduły to foldery zawierające określone typy plików przechowywanych w określonej ścieżce. Istnieje kilka różnych typów modułów programu PowerShell.
Co to jest skrypt programu PowerShell?
Skrypt programu PowerShell to seria poleceń przechowywanych w pliku .ps1 w celu umożliwienia ponownego użycia i udostępniania. Przepływy pracy programu PowerShell to również skrypty programu PowerShell, które przedstawiają zestaw zadań i zapewniają sekwencjonowanie dla tych zadań. Aby uzyskać więcej informacji, odwiedź stronę Wprowadzenie z przepływem pracy programu PowerShell.
W jaki sposób skrypty programu PowerShell różnią się od modułów programu PowerShell?
Moduły są ogólnie lepsze do udostępniania, ale umożliwiamy udostępnianie skryptów, aby ułatwić współtworzenie przepływów pracy i skryptów społeczności. Aby uzyskać więcej informacji, zobacz następujące blogi:
Jak mogę opublikować w Galeria programu PowerShell?
Aby móc publikować pakiety w galerii, musisz zarejestrować konto w Galeria programu PowerShell. Dzieje się tak, ponieważ pakiety publikowania wymagają klucza NuGetApiKey, który jest udostępniany podczas rejestracji. Aby się zarejestrować, użyj konta osobistego, służbowego lub szkolnego, aby zalogować się do Galeria programu PowerShell. Proces rejestracji jednorazowej jest wymagany podczas pierwszego logowania. Następnie klucz NuGetApiKey jest dostępny na stronie profilu.
Po zarejestrowaniu się w galerii użyj poleceń cmdlet Publish-Module lub Publish-Script , aby opublikować pakiet w galerii. Aby uzyskać więcej informacji na temat uruchamiania tych poleceń cmdlet, odwiedź kartę Publikowanie lub zapoznaj się z dokumentacją Publikowanie modułu i skryptu publikowania .
Nie musisz rejestrować ani logować się do galerii, aby zainstalować lub zapisać pakiety.
Odebrano komunikat "Nie można przetworzyć żądania". podczas próby opublikowania pakietu w Galeria programu PowerShell. Co to oznacza?
Pełny komunikat o błędzie to: "Nie można przetworzyć żądania". "Określony klucz interfejsu API jest nieprawidłowy lub nie ma uprawnień dostępu do określonego pakietu". Serwer zdalny zwrócił błąd: (403) Zabronione".
Ten błąd może wystąpić z następujących powodów:
- Określony klucz interfejsu API jest nieprawidłowy. Upewnij się, że określono prawidłowy klucz interfejsu API z konta. Aby uzyskać klucz interfejsu API, wyświetl stronę profilu.
- Określona nazwa pakietu nie jest własnością Użytkownika. Jeśli potwierdzono, że klucz interfejsu API jest poprawny, może już istnieć pakiet o takiej samej nazwie jak klucz, którego próbujesz użyć. Pakiet mógł nie być wymieniony przez właściciela, w którym przypadku nie będzie wyświetlany w żadnych wynikach wyszukiwania. Aby określić, czy pakiet o tej samej nazwie już istnieje, otwórz przeglądarkę i przejdź do strony szczegółów pakietu:
https://www.powershellgallery.com/packages/<packageName>
. Na przykład przejście bezpośrednio dohttps://www.powershellgallery.com/packages/pester
strony szczegółów modułu Pester spowoduje przejście do strony szczegółów modułu Pester, niezależnie od tego, czy jest on nie wymieniony, czy nie. Jeśli pakiet o nazwie powodującej konflikt już istnieje i nie ma na liście, możesz:- Wybierz inną nazwę pakietu.
- Skontaktuj się z właścicielami istniejącego pakietu.
Dlaczego nie mogę zalogować się przy użyciu mojego konta osobistego, ale mogę się zalogować wczoraj?
Pamiętaj, że konto galerii nie uwzględnia zmian w podstawowym aliasie poczty e-mail. Aby uzyskać więcej informacji, zobacz Microsoft Email Aliases.
Dlaczego nie widzę wszystkich pakietów galerii po zaznaczeniu wszystkich pól wyboru Kategoria na karcie pakiety?
Zaznaczając pole wyboru Kategoria, znajduje się komunikat "Chcę zobaczyć wszystkie pakiety w tej kategorii". Zostaną wyświetlone tylko pakiety w wybranych kategoriach. Podobnie, wybierając wszystkie pola wyboru Kategoria, znajduje się komunikat "Chcę zobaczyć wszystkie pakiety w dowolnej kategorii". Jednak niektóre pakiety w galerii nie należą do żadnej z wymienionych kategorii, więc nie będą wyświetlane w wynikach. Aby wyświetlić wszystkie pakiety w galerii, usuń zaznaczenie wszystkich kategorii lub ponownie wybierz kartę pakiety.
Jakie są wymagania dotyczące publikowania modułu w Galeria programu PowerShell?
Każdy rodzaj modułu programu PowerShell (moduły skryptu, moduły binarne lub moduły manifestu) można opublikować w galerii. Aby opublikować moduł, moduł PowerShellGet musi wiedzieć o nim kilka rzeczy — wersję, opis, autor i sposób licencji. Te informacje są odczytywane w ramach procesu publikowania z pliku manifestu modułu (psd1) lub z wartości parametru LicenseUri polecenia cmdlet Publish-Module. Wszystkie moduły opublikowane w galerii muszą mieć manifesty modułów. Każdy moduł zawierający następujące informacje w manifeście można opublikować w galerii:
- Wersja
- Opis
- Autor
- Identyfikator URI do postanowień licencyjnych modułu w ramach sekcji PrivateData manifestu lub w parametrze LicenseUri polecenia cmdlet Publish-Module .
Jak mogę utworzyć poprawnie sformatowany manifest modułu?
Najprostszym sposobem utworzenia manifestu modułu jest uruchomienie polecenia cmdlet New-ModuleManifest . W programie PowerShell 5.0 lub nowszym New-ModuleManifest generuje poprawnie sformatowany manifest modułu z pustymi polami przydatnymi metadanymi, takimi jak ProjectUri, LicenseUri i Tags. Wystarczy wypełnić puste wartości lub użyć wygenerowanego manifestu jako przykładowego poprawnego formatowania.
Aby sprawdzić, czy wszystkie wymagane pola metadanych zostały prawidłowo wypełnione, użyj polecenia cmdlet Test-ModuleManifest .
Aby zaktualizować pola pliku manifestu modułu, użyj polecenia cmdlet Update-ModuleManifest .
Jakie są wymagania dotyczące publikowania skryptu w galerii?
Dowolny skrypt programu PowerShell (skrypty lub przepływy pracy) można opublikować w galerii. Aby opublikować skrypt, moduł PowerShellGet musi wiedzieć o nim kilka rzeczy — wersję, opis, autor i sposób licencji. Te informacje są odczytywane w ramach procesu publikowania z sekcji PSScriptInfo pliku skryptu lub z wartości parametru LicenseUri polecenia cmdlet Publish-Script. Wszystkie skrypty opublikowane w galerii muszą zawierać informacje o metadanych. Każdy skrypt zawierający następujące informacje w sekcji PSScriptInfo można opublikować w galerii:
- Wersja
- Opis
- Autor
- Identyfikator URI do postanowień licencyjnych skryptu w ramach sekcji PSScriptInfo skryptu lub w parametrze LicenseUri polecenia cmdlet Publish-Script .
Jak mogę wyszukiwania?
Wpisz, czego szukasz w polu tekstowym. Jeśli na przykład chcesz znaleźć moduły powiązane z Azure SQL, wystarczy wpisać "azure sql". Nasza wyszukiwarka będzie wyszukiwać te słowa kluczowe we wszystkich opublikowanych pakietach, w tym tytułach, opisach i metadanych. Następnie w oparciu o wskaźnik jakości ważonej będzie wyświetlany najbliższych dopasowań. Możesz również wyszukiwać według określonego pola przy użyciu składni field:"value" w zapytaniu wyszukiwania dla następujących pól:
- Tagi
- Funkcje
- Polecenia cmdlet
- DscResources
- PowerShellVersion
Na przykład podczas wyszukiwania elementu PowerShellVersion:"2.0" będą wyświetlane tylko wyniki zgodne z programem PowerShellVersion 2.0 (na podstawie manifestu modułu/skryptu).
Jak mogę utworzyć poprawnie sformatowany plik skryptu?
Najprostszym sposobem utworzenia poprawnie sformatowanego pliku skryptu jest uruchomienie polecenia cmdlet New-ScriptFileInfo . W programie PowerShell 5.0 New-ScriptFileInfo generuje poprawnie sformatowany plik skryptu z pustymi polami przydatnymi metadanymi, takimi jak ProjectUri, LicenseUri i Tags. Wystarczy wypełnić puste wartości lub użyć wygenerowanego pliku skryptu jako przykładowego poprawnego formatowania.
Aby sprawdzić, czy wszystkie wymagane pola metadanych zostały poprawnie wypełnione, użyj polecenia cmdlet Test-ScriptFileInfo .
Aby zaktualizować pola metadanych skryptu, użyj polecenia cmdlet Update-ScriptFileInfo .
Jakie inne typy modułów programu PowerShell istnieją?
Termin Moduł programu PowerShell odnosi się również do plików implementujących rzeczywiste funkcje. Pliki modułu skryptu (psm1) zawierają kod programu PowerShell. Pliki modułów binarnych (.dll) zawierają skompilowany kod.
Oto jeden ze sposobów, aby o tym pomyśleć: folder, który hermetyzuje moduł, jest folderem modułu. Folder module może zawierać manifest modułu (psd1), który opisuje zawartość folderu. Pliki, które rzeczywiście wykonują pracę, to pliki modułu skryptu (psm1) i pliki modułów binarnych (.dll). Zasoby DSC znajdują się w określonym podfolderze i są implementowane jako pliki modułów skryptu lub pliki modułów binarnych.
Wszystkie moduły w galerii zawierają manifesty modułów, a większość z tych modułów zawiera pliki modułów skryptu lub pliki modułów binarnych. Termin modułu może być mylący ze względu na te różne znaczenia. Jeśli nie określono inaczej, wszystkie zastosowania modułu word na tej stronie odwołują się do folderu modułu zawierającego te pliki.
Jak funkcja PackageManagement odnosi się do modułu PowerShellGet? (Odpowiedź wysokiego poziomu)
PackageManagement to wspólny interfejs do pracy z dowolnym menedżerem pakietów. W końcu, niezależnie od tego, czy masz do czynienia z modułami programu PowerShell, msI, klejnotami Ruby, pakietami NuGet, czy modułami Perl, należy użyć poleceń PackageManagement (Find-Package i Install-Package), aby je znaleźć i zainstalować. Funkcja PackageManagement robi to, mając dostawcę pakietów dla każdego menedżera pakietów, który jest podłączany do pakietu PackageManagement. Dostawcy wykonują całą rzeczywistą pracę; pobierają zawartość z repozytoriów i instalują zawartość lokalnie. Często dostawcy pakietów po prostu otaczają istniejące narzędzia menedżera pakietów dla danego typu pakietu.
PowerShellGet to menedżer pakietów dla pakietów programu PowerShell. Istnieje dostawca pakietów PSModule, który uwidacznia funkcję PowerShellGet za pośrednictwem funkcji PackageManagement. W związku z tym można uruchomić polecenie Install-Module lub Install-Package -Provider PSModule
zainstalować moduł z Galeria programu PowerShell.
Niektóre funkcje modułu PowerShellGet, w tym Update-Module i Publish-Module, nie mogą być dostępne za pośrednictwem poleceń PackageManagement.
Podsumowując, moduł PowerShellGet koncentruje się wyłącznie na celach zarządzania pakietami w warstwie Premium dla zawartości programu PowerShell. PakietManagement koncentruje się na uwidacznieniu wszystkich środowisk zarządzania pakietami za pomocą jednego ogólnego zestawu narzędzi. Jeśli znajdziesz tę odpowiedź niezadowoloną, w dolnej części tego dokumentu znajduje się długa odpowiedź, w sekcji How does PackageManagement rzeczywiście odnosi się do modułu PowerShellGet?
Aby uzyskać więcej informacji, odwiedź stronę projektu PackageManagement.
Jak pakiet NuGet odnosi się do polecenia PowerShellGet?
Galeria programu PowerShell jest zmodyfikowaną wersją galerii NuGet. Program PowerShellGet używa dostawcy NuGet do pracy z repozytoriami opartymi na nuGet, takimi jak Galeria programu PowerShell.
Możesz użyć modułu PowerShellGet względem dowolnego prawidłowego repozytorium NuGet lub udziału plików. Wystarczy dodać repozytorium, uruchamiając polecenie cmdlet Register-PSRepository .
Czy oznacza to, że mogę użyć NuGet.exe do pracy z galerią?
Tak.
Jak funkcja PackageManagement rzeczywiście odnosi się do modułu PowerShellGet? (Szczegóły techniczne)
W ramach programu PowerShellGet w dużym stopniu wykorzystuje infrastrukturę PackageManagement.
W warstwie polecenia cmdlet programu PowerShell moduł Install-Module jest w rzeczywistości cienką otoką wokół .Install-Package -Provider PSModule
W warstwie dostawcy pakietów PackageManagement dostawca pakietów PSModule rzeczywiście wywołuje do innych dostawców pakietów PackageManagement. Na przykład podczas pracy z galeriami opartymi na pakiecie NuGet (takimi jak Galeria programu PowerShell) dostawca pakietów PSModule używa dostawcy pakietów NuGet do pracy z repozytorium.
Rysunek 1. Architektura powerShellGet
Co jest wymagane do uruchomienia modułu PowerShellGet?
Ogólnie rzecz biorąc, zalecamy wybranie najnowszej wersji modułu PowerShellGet (należy pamiętać, że wymaga platformy .NET 4.5).
Moduł PowerShellGet wymaga programu PowerShell 3.0 lub nowszego.
W związku z tym moduł PowerShellGet wymaga jednego z następujących systemów operacyjnych:
- Windows 10
- Windows 8.1 Pro
- Windows 8.1 Enterprise
- Windows 7 z dodatkiem SP1
- Windows Server 2016
- Windows Server 2012 z dodatkiem R2
- Windows Server 2008 R2 SP1
Program PowerShellGet wymaga również .NET Framework 4.5 lub nowszej wersji. Aby uzyskać więcej informacji, zobacz Instalowanie .NET Framework dla deweloperów.
Czy można zarezerwować nazwy pakietów, które zostaną opublikowane w przyszłości?
Nie można squat nazw pakietów. Jeśli uważasz, że istniejący pakiet przyjął nazwę odpowiadającą twojemu pakietowi więcej, spróbuj skontaktować się z właścicielem pakietu. Jeśli nie otrzymasz odpowiedzi w ciągu kilku tygodni, możesz skontaktować się z pomocą techniczną, a zespół Galeria programu PowerShell zajrzy do niego.
Jak mogę własność roszczenia dla pakietów?
Aby uzyskać szczegółowe informacje, zapoznaj się z tematem Zarządzanie właścicielami pakietów w PowerShellGallery.com .
Jak mogę radzić sobie z właścicielem pakietu, który narusza moją licencję pakietu?
Zachęcamy społeczność programu PowerShell do współpracy w celu rozwiązania wszelkich sporów, które mogą wystąpić między właścicielami pakietów a właścicielami innych pakietów. Utworzyliśmy proces rozwiązywania sporów , który prosimy o wykonanie czynności przed PowerShellGallery.com interakcje administratorów.