Tanya jawab umum tentang Galeri PowerShell

Apa itu modul PowerShell?

Modul PowerShell adalah paket yang dapat digunakan kembali yang berisi beberapa fungsionalitas PowerShell. Semua yang ada di PowerShell (fungsi, variabel, sumber daya DSC, dll.) dapat dipaketkan dalam modul. Biasanya, modul adalah folder yang berisi jenis file tertentu yang disimpan di jalur tertentu. Ada beberapa jenis modul PowerShell yang berbeda di luar sana.

Apa itu skrip PowerShell?

Skrip PowerShell adalah serangkaian perintah yang disimpan dalam file .ps1 untuk mengaktifkan penggunaan kembali dan berbagi. Alur kerja PowerShell juga merupakan skrip PowerShell, yang menguraikan serangkaian tugas dan menyediakan pengurutan untuk tugas tersebut. Untuk informasi selengkapnya, silakan kunjungi Memulai Alur Kerja PowerShell.

Apa perbedaan Skrip PowerShell dengan Modul PowerShell?

Modul umumnya lebih baik untuk dibagikan, tetapi kami memungkinkan berbagi skrip untuk memudahkan Anda berkontribusi alur kerja dan skrip kepada komunitas. Untuk informasi selengkapnya, lihat blog berikut ini:

Bagaimana cara menerbitkan ke Galeri PowerShell?

Anda harus mendaftarkan akun di Galeri PowerShell sebelum dapat menerbitkan paket ke Galeri. Ini karena paket penerbitan memerlukan NuGetApiKey, yang disediakan saat pendaftaran. Untuk mendaftar, gunakan akun pribadi, kantor, atau sekolah Anda untuk masuk ke Galeri PowerShell. Proses pendaftaran satu kali diperlukan saat Anda masuk untuk pertama kalinya. Setelah itu, NuGetApiKey Anda tersedia di halaman profil Anda.

Setelah Anda mendaftar di Galeri, gunakan cmdlet Publish-Module atau Publish-Script untuk menerbitkan paket Anda ke Galeri. Untuk detail selengkapnya tentang cara menjalankan cmdlet ini, kunjungi tab Terbitkan, atau baca dokumentasi Publish-Module dan Publish-Script .

Anda tidak perlu mendaftar atau masuk ke Galeri untuk menginstal atau menyimpan paket.

Saya menerima "Gagal memproses permintaan." ketika saya mencoba menerbitkan paket ke Galeri PowerShell. Apa maksudnya?

Pesan kesalahan lengkapnya adalah: "Gagal memproses permintaan." 'Kunci API yang ditentukan tidak valid atau tidak memiliki izin untuk mengakses paket yang ditentukan.'. Server jarak jauh mengembalikan kesalahan: (403) Terlarang."

Kesalahan ini dapat terjadi karena alasan berikut:

  • Kunci API yang ditentukan tidak valid. Pastikan Anda telah menentukan kunci API yang valid dari akun Anda. Untuk mendapatkan kunci API Anda, lihat halaman profil Anda.
  • Nama paket yang ditentukan tidak dimiliki oleh Anda. Jika Anda telah mengonfirmasi bahwa kunci API Anda sudah benar, maka mungkin sudah ada paket dengan nama yang sama dengan yang coba Anda gunakan. Paket mungkin telah tidak tercantum oleh pemilik, dalam hal ini tidak akan muncul dalam hasil pencarian apa pun. Untuk menentukan apakah paket dengan nama yang sama sudah ada, buka browser dan navigasikan ke halaman detail paket: https://www.powershellgallery.com/packages/<packageName>. Misalnya, menavigasi langsung ke https://www.powershellgallery.com/packages/pester akan membawa Anda ke halaman detail modul Pester, apakah itu tidak tercantum atau tidak. Jika paket dengan nama yang bertentangan sudah ada dan tidak terdaftar, Anda dapat:
    • Pilih nama lain untuk paket Anda.
    • Hubungi pemilik paket yang ada.

Mengapa saya tidak bisa masuk dengan akun pribadi saya, tetapi saya bisa masuk kemarin?

Perlu diketahui bahwa akun galeri Anda tidak mengakomodasi perubahan pada alias email utama Anda. Untuk informasi selengkapnya, lihat Microsoft Email Alias.

Mengapa saya tidak melihat semua paket galeri saat saya memilih semua kotak centang Kategori pada tab paket?

Dengan memilih kotak centang Kategori, Anda menyatakan "Saya ingin melihat semua paket dalam kategori ini." Hanya paket dalam kategori terpilih yang akan ditampilkan. Jadi demikian pula, dengan memilih semua kotak centang Kategori, Anda menyatakan "Saya ingin melihat semua paket dalam kategori apa pun." Tetapi beberapa paket di galeri bukan milik salah satu kategori yang tercantum, sehingga tidak akan muncul dalam hasil. Untuk melihat semua paket di galeri, hapus centang pada semua Kategori, atau pilih tab paket lagi.

Apa saja persyaratan untuk menerbitkan modul ke Galeri PowerShell?

Segala jenis modul PowerShell (modul skrip, modul biner, atau modul manifes) dapat diterbitkan ke galeri. Untuk menerbitkan modul, PowerShellGet perlu mengetahui beberapa hal tentang modul tersebut - versi, deskripsi, penulis, dan cara lisensinya. Informasi ini dibaca sebagai bagian dari proses penerbitan dari file manifes modul (.psd1), atau dari nilai parameter LicenseUri cmdlet Publish-Module. Semua modul yang diterbitkan ke Galeri harus memiliki manifes modul. Modul apa pun yang menyertakan informasi berikut dalam manifesnya dapat dipublikasikan ke Galeri:

  • Versi
  • Deskripsi
  • Penulis
  • URI ke ketentuan lisensi modul, baik sebagai bagian dari bagian PrivateData dari manifes, atau dalam parameter LicenseUri dari cmdlet Publish-Module .

Bagaimana cara membuat manifes modul yang diformat dengan benar?

Cara term mudah untuk membuat manifes modul adalah dengan menjalankan cmdlet New-ModuleManifest . Di PowerShell 5.0 atau yang lebih baru, New-ModuleManifest menghasilkan manifes modul yang diformat dengan benar dengan bidang kosong untuk metadata yang berguna seperti ProjectUri, LicenseUri, dan Tag. Cukup isi yang kosong, atau gunakan manifes yang dihasilkan sebagai contoh pemformatan yang benar.

Untuk memverifikasi bahwa semua bidang metadata yang diperlukan telah diisi dengan benar, gunakan cmdlet Test-ModuleManifest .

Untuk memperbarui bidang file manifes modul, gunakan cmdlet Update-ModuleManifest .

Apa saja persyaratan untuk menerbitkan skrip ke Galeri?

Segala jenis skrip PowerShell (skrip atau alur kerja) dapat diterbitkan ke galeri. Untuk menerbitkan skrip, PowerShellGet perlu mengetahui beberapa hal tentang skrip tersebut - versi, deskripsi, penulis, dan cara lisensinya. Informasi ini dibaca sebagai bagian dari proses penerbitan dari bagian PSScriptInfo file skrip, atau dari nilai parameter LicenseUri cmdlet Publish-Script. Semua skrip yang diterbitkan ke Galeri harus memiliki informasi metadata. Setiap skrip yang menyertakan informasi berikut di bagian PSScriptInfo-nya dapat diterbitkan ke Galeri:

  • Versi
  • Deskripsi
  • Penulis
  • URI ke ketentuan lisensi skrip, baik sebagai bagian dari PSScriptInfo dari skrip, atau di parameter LicenseUri cmdlet Publish-Script .

Bagaimana cara mencari?

Ketik apa yang Anda cari di kotak teks. Misalnya, jika Anda ingin menemukan modul yang terkait dengan Azure SQL, cukup ketik "azure sql". Mesin pencari kami akan mencari kata kunci tersebut di semua paket yang diterbitkan, termasuk judul, deskripsi, dan di seluruh metadata. Kemudian, berdasarkan skor kualitas tertimbang, itu akan menampilkan kecocokan terdekat. Anda juga bisa mencari berdasarkan bidang tertentu menggunakan sintaks bidang:"nilai" dalam kueri pencarian untuk bidang berikut:

  • Tag
  • Fungsi
  • Cmdlet
  • DscResources
  • PowerShellVersion

Jadi, misalnya, saat Anda mencari PowerShellVersion:"2.0" hanya hasil yang kompatibel dengan PowerShellVersion 2.0 (berdasarkan manifes modul/skrip mereka) yang akan ditampilkan.

Bagaimana cara membuat file skrip yang diformat dengan benar?

Cara termusah untuk membuat file skrip yang diformat dengan benar adalah dengan menjalankan cmdlet New-ScriptFileInfo . Di PowerShell 5.0, New-ScriptFileInfo menghasilkan file skrip yang diformat dengan benar dengan bidang kosong untuk metadata yang berguna seperti ProjectUri, LicenseUri, dan Tag. Cukup isi yang kosong, atau gunakan file skrip yang dihasilkan sebagai contoh pemformatan yang benar.

Untuk memverifikasi bahwa semua bidang metadata yang diperlukan telah diisi dengan benar, gunakan cmdlet Test-ScriptFileInfo .

Untuk memperbarui bidang metadata skrip, gunakan cmdlet Update-ScriptFileInfo .

Jenis Modul PowerShell lainnya apa yang ada?

Istilah modul PowerShell juga mengacu pada file yang menerapkan fungsionalitas aktual. File modul skrip (.psm1) berisi kode PowerShell. File modul biner (.dll) berisi kode yang dikompilasi.

Berikut adalah salah satu cara untuk memikirkannya: folder yang merangkum modul adalah folder modul. Folder modul dapat berisi manifes modul (.psd1) yang menjelaskan konten folder. File yang benar-benar melakukan pekerjaan adalah file modul skrip (.psm1) dan file modul biner (.dll). Sumber daya DSC terletak di sub-folder tertentu, dan diimplementasikan sebagai file modul skrip atau file modul biner.

Semua modul di Galeri berisi manifes modul, dan sebagian besar modul ini berisi file modul skrip atau file modul biner. Istilah modul dapat membingungkan karena makna yang berbeda ini. Kecuali dinyatakan sebaliknya secara eksplisit, semua penggunaan modul kata di halaman ini merujuk ke folder modul yang berisi file-file ini.

Bagaimana PackageManagement berhubungan dengan PowerShellGet? (Jawaban Tingkat Tinggi)

PackageManagement adalah antarmuka umum untuk bekerja dengan manajer paket apa pun. Akhirnya, apakah Anda berurusan dengan modul PowerShell, MSI, gem Ruby, paket NuGet, atau modul Perl, Anda harus dapat menggunakan perintah PackageManagement (Find-Package dan Install-Package) untuk menemukan dan menginstalnya. PackageManagement melakukan ini dengan memiliki penyedia paket untuk setiap manajer paket yang dicolokkan ke PackageManagement. Penyedia melakukan semua pekerjaan aktual; mereka mengambil konten dari repositori, dan menginstal konten secara lokal. Seringkali, penyedia paket hanya membungkus alat manajer paket yang ada untuk jenis paket tertentu.

PowerShellGet adalah manajer paket untuk paket PowerShell. Ada penyedia paket PSModule yang mengekspos fungsionalitas PowerShellGet melalui PackageManagement. Karena itu, Anda dapat menjalankan Install-Module atau Install-Package -Provider PSModule menginstal modul dari Galeri PowerShell. Fungsionalitas PowerShellGet tertentu, termasuk Update-Module dan Publish-Module, tidak dapat diakses melalui perintah PackageManagement.

Singkatnya, PowerShellGet hanya berfokus pada memiliki pengalaman manajemen paket premium untuk konten PowerShell. PackageManagement difokuskan untuk mengekspos semua pengalaman manajemen paket melalui satu set alat umum. Jika Anda menemukan jawaban ini tidak memuaskan, ada jawaban panjang di bagian bawah dokumen ini, di bagian Bagaimana PackageManagement benar-benar terkait dengan PowerShellGet? .

Untuk informasi lebih lanjut, silakan kunjungi halaman proyek PackageManagement.

Bagaimana NuGet berhubungan dengan PowerShellGet?

Galeri PowerShell adalah versi yang dimodifikasi dari Galeri NuGet. PowerShellGet menggunakan penyedia NuGet untuk bekerja dengan repositori berbasis NuGet seperti Galeri PowerShell.

Anda dapat menggunakan PowerShellGet terhadap repositori NuGet atau berbagi file yang valid. Anda hanya perlu menambahkan repositori dengan menjalankan cmdlet Register-PSRepository .

Ya.

Bagaimana PackageManagement benar-benar berhubungan dengan PowerShellGet? (Detail Teknis)

Di bawah tenda, PowerShellGet sangat memanfaatkan infrastruktur PackageManagement.

Pada lapisan cmdlet PowerShell, Install-Module sebenarnya adalah pembungkus tipis di sekitar Install-Package -Provider PSModule.

Di lapisan penyedia paket PackageManagement, penyedia paket PSModule benar-benar memanggil ke penyedia paket PackageManagement lainnya. Misalnya, saat Anda bekerja dengan galeri berbasis NuGet (seperti Galeri PowerShell), penyedia paket PSModule menggunakan Penyedia Paket NuGet untuk bekerja dengan repositori.

Diagram Arsitektur PowerShellGet

Gambar 1: Arsitektur PowerShellGet

Apa yang diperlukan untuk menjalankan PowerShellGet?

Secara umum, sebaiknya pilih modul PowerShellGet versi terbaru (perhatikan bahwa ia memerlukan .NET 4.5).

Modul PowerShellGet memerlukan PowerShell 3.0 atau yang lebih baru.

Oleh karena itu, PowerShellGet memerlukan salah satu sistem operasi berikut:

  • Windows 10
  • Windows 8.1 Pro
  • Windows 8.1 Enterprise
  • Windows 7 SP1
  • Server Windows 2016
  • Windows Server 2012 R2
  • Windows Server 2008 R2 SP1

PowerShellGet juga memerlukan .NET Framework 4.5 atau lebih tinggi. Untuk informasi selengkapnya, lihat Menginstal .NET Framework untuk pengembang.

Apakah mungkin untuk memesan nama untuk paket yang akan diterbitkan di masa mendatang?

Tidak dimungkinkan untuk mencukur nama paket. Jika Anda merasa bahwa paket yang ada telah mengambil nama yang lebih sesuai dengan paket Anda, coba hubungi pemilik paket. Jika Anda tidak mendapatkan respons dalam beberapa minggu, Anda dapat menghubungi dukungan dan tim Galeri PowerShell akan mencarinya.

Bagaimana cara mengklaim kepemilikan untuk paket?

Bagaimana cara menangani pemilik paket yang melanggar lisensi paket saya?

Kami mendorong komunitas PowerShell untuk bekerja sama untuk menyelesaikan sengketa apa pun yang mungkin timbul antara pemilik paket dan pemilik paket lain. Kami telah membuat proses penyelesaian sengketa yang kami minta anda ikuti sebelum PowerShellGallery.com administrator memberikan syahadat.