PowerShell Galerisi hakkında sık sorulan sorular

PowerShell modülü nedir?

PowerShell modülü, bazı PowerShell işlevleri içeren yeniden kullanılabilir bir pakettir. PowerShell'deki her şey (işlevler, değişkenler, DSC kaynakları vb.) modüllerde paketlenebilir. Modüller genellikle belirli bir yolda depolanan belirli dosya türlerini içeren klasörlerdir. Orada birkaç farklı türde PowerShell modülü vardır.

PowerShell betiği nedir?

PowerShell betiği, yeniden kullanımı ve paylaşımı etkinleştirmek için .ps1 bir dosyada depolanan bir komut dizisidir. PowerShell iş akışları, bir dizi görevi özetleyen ve bu görevler için sıralama sağlayan PowerShell betikleridir. Daha fazla bilgi için lütfen PowerShell İş Akışını Kullanmaya Başlama'yı ziyaret edin.

PowerShell Betiklerinin PowerShell Modüllerinden farkı nedir?

Modüller genellikle paylaşım için daha iyidir, ancak iş akışlarını ve betikleri topluluğa katkıda bulunmanızı kolaylaştırmak için betik paylaşımını etkinleştiriyoruz. Daha fazla bilgi için aşağıdaki bloglara bakın:

PowerShell Galerisi nasıl yayımlayabilirim?

Paketleri Galeri'de yayımlamadan önce PowerShell Galerisi bir hesap kaydetmeniz gerekir. Bunun nedeni, yayımlama paketlerinin kayıt sırasında sağlanan bir NuGetApiKey gerektirmesidir. Kaydolmak için kişisel, iş veya okul hesabınızı kullanarak PowerShell Galerisi oturum açın. İlk kez oturum açtığınızda bir kerelik kayıt işlemi gereklidir. Daha sonra, NuGetApiKey'iniz profil sayfanızda kullanılabilir.

Galeri'ye kaydoldıktan sonra, paketinizi Galeri'de yayımlamak için Publish-Module veya Publish-Script cmdlet'lerini kullanın. Bu cmdlet'leri çalıştırma hakkında daha fazla ayrıntı için Yayımla sekmesini ziyaret edin veya Publish-Module ve Publish-Script belgelerini okuyun.

Paketleri yüklemek veya kaydetmek için Galeri'ye kaydolmanız veya galeride oturum açmanız gerekmez.

"İstek işlenemedi" ifadesini aldım. bir paketi PowerShell Galerisi yayımlamaya çalıştığımda. Bu ne anlama gelir?

Tam hata iletisi: "İstek işlenemedi." 'Belirtilen API anahtarı geçersiz veya belirtilen pakete erişim izni yok.'. Uzak sunucu bir hata döndürdü: (403) Yasak."

Bu hata aşağıdaki nedenlerle oluşabilir:

  • Belirtilen API anahtarı geçersiz. Hesabınızdan geçerli API anahtarını belirttiğinizden emin olun. API anahtarınızı almak için profil sayfanızı görüntüleyin.
  • Belirtilen paket adı size ait değil. API anahtarınızın doğru olduğunu doğruladıysanız, kullanmaya çalıştığınız paketle aynı ada sahip bir paket zaten var olabilir. Paket sahibi tarafından listeden çıkarılmış olabilir, bu durumda hiçbir arama sonuçlarında gösterilmez. Aynı ada sahip bir paketin zaten mevcut olup olmadığını belirlemek için bir tarayıcı açın ve paketin ayrıntılar sayfasına gidin: https://www.powershellgallery.com/packages/<packageName>. Örneğin, doğrudan adresine https://www.powershellgallery.com/packages/pester gitmek sizi Pester modülünün ayrıntılar sayfasına götürür( listelenmemiş olsun veya olmasın). Çakışan ada sahip bir paket zaten varsa ve listelenmemişse şunları yapabilirsiniz:
    • Paketiniz için başka bir ad seçin.
    • Mevcut paketin sahiplerine başvurun.

Neden kişisel hesabımla oturum açamıyorum, ancak dün oturum açabiliyordum?

Galeri hesabınızın birincil e-posta diğer adınızdaki değişiklikleri karşılamadığını lütfen unutmayın. Daha fazla bilgi için bkz. Microsoft Email Diğer Adları.

Paketler sekmesindeki tüm Kategori onay kutularını seçtiğim zaman neden tüm galeri paketlerini göremiyorum?

Kategori onay kutusunu seçerek "Bu kategorideki tüm paketleri görmek istiyorum" ifadesini belirtirsiniz. Yalnızca seçili kategorilerdeki paketler görüntülenir. Benzer şekilde, tüm Kategori onay kutularını seçerek "Herhangi bir kategorideki tüm paketleri görmek istiyorum" ifadesini belirtirsiniz. Ancak galerideki bazı paketler listelenen kategorilerin hiçbirine ait olmadığından sonuçlarda gösterilmez. Galerideki tüm paketleri görmek için tüm Kategoriler'in işaretini kaldırın veya paketler sekmesini yeniden seçin.

modülü PowerShell Galerisi yayımlama gereksinimleri nelerdir?

Her tür PowerShell modülü (betik modülleri, ikili modüller veya bildirim modülleri) galeride yayımlanabilir. Bir modülü yayımlamak için PowerShellGet'in bu modülle ilgili birkaç şey bilmesi gerekir: sürüm, açıklama, yazar ve nasıl lisanslandırılır. Bu bilgiler , modül bildirimi (.psd1) dosyasından veya Publish-Module cmdlet'inin LicenseUri parametresinin değerinden yayımlama işleminin bir parçası olarak okunur. Galeride yayımlanan tüm modüllerin modül bildirimleri olmalıdır. Bildiriminde aşağıdaki bilgileri içeren tüm modüller Galeri'de yayımlanabilir:

  • Sürüm
  • Açıklama
  • Yazma
  • Bildirimin PrivateData bölümünün parçası olarak veya Publish-Module cmdlet'inin LicenseUri parametresinde modülün lisans koşullarının URI'si.

Doğru biçimlendirilmiş bir modül bildirimi oluşturmak Nasıl yaparım??

Modül bildirimi oluşturmanın en kolay yolu New-ModuleManifest cmdlet'ini çalıştırmaktır. PowerShell 5.0 veya daha yeni sürümlerde New-ModuleManifest , ProjectUri, LicenseUri ve Tags gibi yararlı meta veriler için boş alanlarla doğru biçimlendirilmiş bir modül bildirimi oluşturur. Boşlukları doldurmanız veya oluşturulan bildirimi doğru biçimlendirme örneği olarak kullanmanız yeterlidir.

Tüm gerekli meta veri alanlarının düzgün doldurulduğunu doğrulamak için Test-ModuleManifest cmdlet'ini kullanın.

Modül bildirim dosyası alanlarını güncelleştirmek için Update-ModuleManifest cmdlet'ini kullanın.

Galeride betik yayımlama gereksinimleri nelerdir?

Her tür PowerShell betiği (betikler veya iş akışları) galeride yayımlanabilir. Bir betiği yayımlamak için PowerShellGet'in bu betikle ilgili birkaç şey bilmesi gerekir: sürüm, açıklama, yazar ve nasıl lisanslandırılır. Bu bilgiler, betik dosyasının PSScriptInfo bölümünden veya Publish-Script cmdlet'inin LicenseUri parametresinin değerinden yayımlama işleminin bir parçası olarak okunur. Galeride yayımlanan tüm betikler meta veri bilgilerine sahip olmalıdır. PSScriptInfo bölümünde aşağıdaki bilgileri içeren tüm betikler Galeri'de yayımlanabilir:

  • Sürüm
  • Açıklama
  • Yazma
  • Betiğin PSScriptInfo bölümünün parçası olarak veya Publish-Script cmdlet'inin LicenseUri parametresinde betiğin lisans koşullarının URI'si.

Nasıl yaparım? arama?

Metin kutusuna aradığınızı yazın. Örneğin, Azure SQL ile ilgili modülleri bulmak istiyorsanız "azure sql" yazmanız gerekir. Arama altyapımız başlıklar, açıklamalar ve meta veriler dahil olmak üzere yayımlanan tüm paketlerde bu anahtar sözcükleri arar. Ardından, ağırlıklı kalite puanına göre en yakın eşleşmeleri görüntüler. Ayrıca, aşağıdaki alanları arama sorgusunda field:"value" söz dizimini kullanarak belirli bir alana göre arama yapabilirsiniz:

  • Etiketler
  • İşlevler
  • Cmdlet’ler
  • DscResources
  • PowerShellVersion

Bu nedenle, örneğin, PowerShellVersion:"2.0" araması yaptığınızda yalnızca PowerShellVersion 2.0 ile uyumlu sonuçlar (modül/betik bildirimine göre) görüntülenir.

Doğru biçimlendirilmiş bir betik dosyası Nasıl yaparım? oluşturulur?

Düzgün biçimlendirilmiş bir betik dosyası oluşturmanın en kolay yolu New-ScriptFileInfo cmdlet'ini çalıştırmaktır. PowerShell 5.0'da New-ScriptFileInfo , ProjectUri, LicenseUri ve Tags gibi yararlı meta veriler için boş alanlarla doğru biçimlendirilmiş bir betik dosyası oluşturur. Boşlukları doldurmanız veya oluşturulan betik dosyasını doğru biçimlendirme örneği olarak kullanmanız yeterlidir.

Tüm gerekli meta veri alanlarının düzgün doldurulduğunu doğrulamak için Test-ScriptFileInfo cmdlet'ini kullanın.

Betik meta veri alanlarını güncelleştirmek için Update-ScriptFileInfo cmdlet'ini kullanın.

Başka ne tür PowerShell Modülleri var?

PowerShell modülü terimi, gerçek işlevselliği uygulayan dosyaları da ifade eder. Betik modülü dosyaları (.psm1) PowerShell kodu içerir. İkili modül dosyaları (.dll) derlenmiş kod içerir.

Bunu düşünmenin bir yolu şudur: modülü kapsülleyen klasör modül klasörüdür. Modül klasörü, klasörün içeriğini açıklayan bir modül bildirimi (.psd1) içerebilir. Aslında işi yapacak dosyalar betik modülü dosyaları (.psm1) ve ikili modül dosyalarıdır (.dll). DSC kaynakları belirli bir alt klasörde bulunur ve betik modülü dosyaları veya ikili modül dosyaları olarak uygulanır.

Galerideki tüm modüller modül bildirimlerini içerir ve bu modüllerin çoğu betik modülü dosyalarını veya ikili modül dosyalarını içerir. Bu farklı anlamlar nedeniyle modül terimi kafa karıştırıcı olabilir. Aksi açıkça belirtilmediği sürece, bu sayfadaki word modülünün tüm kullanımları bu dosyaları içeren modül klasörüne başvurur.

PackageManagement ile PowerShellGet arasındaki ilişki nedir? (Üst Düzey Yanıt)

PackageManagement, herhangi bir paket yöneticisiyle çalışmaya yönelik ortak bir arabirimdir. PowerShell modülleri, MSI'ler, Ruby mücevherleri, NuGet paketleri veya Perl modülleriyle ilgileniyor olmanız fark etmeksizin bunları bulmak ve yüklemek için PackageManagement komutlarını (Find-Package ve Install-Package) kullanabilmeniz gerekir. PackageManagement bunu PackageManagement'a bağlanan her paket yöneticisi için bir paket sağlayıcısına sahip olarak yapar. Sağlayıcılar tüm fiili işleri yapar; depolardan içerik getirir ve içeriği yerel olarak yükler. Genellikle, paket sağlayıcıları belirli bir paket türü için mevcut paket yöneticisi araçlarını sarmalar.

PowerShellGet, PowerShell paketlerinin paket yöneticisidir. PackageManagement aracılığıyla PowerShellGet işlevselliğini kullanıma sunan bir PSModule paket sağlayıcısı vardır. Bu nedenle, Install-Module'ü çalıştırabilir veya Install-Package -Provider PSModule PowerShell Galerisi bir modül yükleyebilirsiniz. Update-Module ve Publish-Module gibi bazı PowerShellGet işlevlerine PackageManagement komutları aracılığıyla erişilemez.

Özetle, PowerShellGet yalnızca PowerShell içeriği için premium paket yönetimi deneyimine odaklanmıştır. PackageManagement, tüm paket yönetimi deneyimlerini tek bir genel araç kümesi aracılığıyla kullanıma sunulmaya odaklanmıştır. Bu yanıtı tatmin edici bulmazsanız, bu belgenin en altında PackageManagement'ın PowerShellGet ile ilişkisi nasıldır? bölümünde uzun bir yanıt vardır.

Daha fazla bilgi için packagemanagement proje sayfasını ziyaret edin.

NuGet ile PowerShellGet arasındaki ilişki nedir?

PowerShell Galerisi, NuGet Galerisi'nin değiştirilmiş bir sürümüdür. PowerShellGet, PowerShell Galerisi gibi NuGet tabanlı depolarla çalışmak için NuGet sağlayıcısını kullanır.

PowerShellGet'i geçerli herhangi bir NuGet deposunda veya dosya paylaşımında kullanabilirsiniz. Register-PSRepository cmdlet'ini çalıştırarak depoyu eklemeniz yeterlidir.

Bu galeriyle çalışmak için NuGet.exe kullanabileceğim anlamına mı geliyor?

Evet.

PackageManagement ile PowerShellGet arasındaki ilişki nedir? (Teknik Ayrıntılar)

PowerShellGet, packageManagement altyapısından büyük ölçüde yararlanır.

PowerShell cmdlet katmanında Install-Module aslında çevresinde Install-Package -Provider PSModuleince bir sarmalayıcıdır.

PackageManagement paket sağlayıcısı katmanında, PSModule paket sağlayıcısı aslında diğer PackageManagement paket sağlayıcılarına çağrıda bulunur. Örneğin, NuGet tabanlı galerilerle (PowerShell Galerisi gibi) çalışırken, PSModule paket sağlayıcısı depoyla çalışmak için NuGet Paket Sağlayıcısı'nı kullanır.

PowerShellGet Mimarisinin Diyagramı

Şekil 1: PowerShellGet Mimarisi

PowerShellGet'i çalıştırmak için ne gerekir?

Genel olarak, PowerShellGet modülünün en son sürümünü seçmenizi öneririz (.NET 4.5 gerektirdiğini unutmayın).

PowerShellGet modülü, PowerShell 3.0 veya daha yeni bir sürümü gerektirir.

Bu nedenle, PowerShellGet aşağıdaki işletim sistemlerinden birini gerektirir:

  • 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 ayrıca .NET Framework 4.5 veya üzerini gerektirir. Daha fazla bilgi için bkz. Geliştiriciler için .NET Framework yükleme.

Gelecekte yayımlanacak paketler için ad ayırmak mümkün mü?

Paket adlarının çömelmesi mümkün değildir. Mevcut bir paketin paketinize daha uygun olan adı aldığını düşünüyorsanız paketin sahibiyle iletişime geçmeyi deneyin. Birkaç hafta içinde yanıt almadıysanız desteğe başvurabilirsiniz ve PowerShell Galerisi ekibi bu bağlantıyı arar.

Paketler için sahiplik Nasıl yaparım??

Ayrıntılar için PowerShellGallery.com'da Paket Sahiplerini Yönetme bölümüne bakın.

Paket lisansımı ihlal eden bir paket sahibiyle Nasıl yaparım? anlaşma?

PowerShell topluluğunun paket sahipleri ve diğer paketlerin sahipleri arasında ortaya çıkabilecek tüm anlaşmazlıkları çözmek için birlikte çalışmasını öneririz. PowerShellGallery.com yöneticiler araya girmeden önce izlemenizi istediğimiz bir uyuşmazlık çözümü süreci yaptık.