Apa itu modul PowerShell?
Modul PowerShell adalah paket yang dapat digunakan kembali yang berisi beberapa fungsionalitas PowerShell. Segala sesuatu di PowerShell (fungsi, variabel, sumber daya DSC, dll.) dapat dikemas dalam modul. Biasanya, modul adalah folder yang berisi jenis file tertentu yang disimpan di jalur tertentu. Ada beberapa jenis modul PowerShell di luar sana.
Apa itu skrip PowerShell?
Skrip PowerShell adalah serangkaian perintah yang disimpan dalam file .ps1 untuk memungkinkan penggunaan kembali dan berbagi. Alur kerja PowerShell juga merupakan skrip PowerShell, yang menguraikan serangkaian tugas dan menyediakan pengurutan untuk tugas-tugas tersebut. Untuk informasi selengkapnya, silakan kunjungi Memulai Alur Kerja PowerShell.
Apa perbedaan Skrip PowerShell dari Modul PowerShell?
Modul umumnya lebih baik untuk dibagikan, tetapi kami mengaktifkan berbagi skrip untuk memudahkan Anda menyumbangkan alur kerja dan skrip kepada komunitas. Untuk informasi selengkapnya, lihat blog berikut:
Bagaimana cara menerbitkan ke PowerShell Gallery?
Anda harus mendaftarkan akun di PowerShell Gallery sebelum dapat menerbitkan paket ke Galeri. Ini karena paket penerbitan memerlukan NuGetApiKey, yang disediakan pada saat pendaftaran. Untuk mendaftar, gunakan akun pribadi, kantor, atau sekolah Anda untuk masuk ke PowerShell Gallery. 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 Publish, 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 PowerShell Gallery. 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) Dilarang."
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, lihat halaman profil Anda.
- Nama paket yang ditentukan bukan milik Anda. Jika Anda telah mengonfirmasi bahwa kunci API Anda benar, maka mungkin sudah ada paket dengan nama yang sama dengan yang Anda coba gunakan. Paket mungkin tidak terdaftar oleh pemiliknya, dalam hal ini tidak akan muncul di hasil pencarian apa pun. Untuk menentukan apakah paket dengan nama yang sama sudah ada, buka browser dan buka halaman detail paket:
https://www.powershellgallery.com/packages/<packageName>. Misalnya, menavigasi langsung kehttps://www.powershellgallery.com/packages/pesterakan membawa Anda ke halaman detail modul Pester, apakah itu tidak terdaftar atau tidak. Jika paket dengan nama yang bertentangan sudah ada dan tidak tercantum, Anda dapat:- Pilih nama lain untuk paket Anda.
- Hubungi pemilik paket yang ada.
Mengapa saya tidak dapat masuk dengan akun pribadi saya, tetapi saya dapat masuk kemarin?
Perlu diketahui bahwa akun galeri Anda tidak mengakomodasi perubahan pada alias email utama Anda. Untuk informasi selengkapnya, lihat Alias Microsoft Email.
Mengapa saya tidak melihat semua paket galeri ketika 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 yang dipilih 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 tidak termasuk dalam salah satu kategori yang terdaftar, sehingga tidak akan muncul dalam hasil. Untuk melihat semua paket di galeri, hapus centang pada semua Kategori, atau pilih tab paket lagi.
Apa persyaratan untuk menerbitkan modul ke PowerShell Gallery?
Segala jenis modul PowerShell (modul skrip, modul biner, atau modul manifes) dapat dipublikasikan ke galeri. Untuk menerbitkan modul, PowerShellGet perlu mengetahui beberapa hal tentangnya - 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. Setiap modul yang menyertakan informasi berikut dalam manifesnya dapat dipublikasikan ke Galeri:
- Versi
- Deskripsi
- Author
- URI ke persyaratan lisensi modul, baik sebagai bagian dari bagian PrivateData manifes, atau dalam parameter LicenseUri dari cmdlet Publish-Module .
Bagaimana cara membuat manifes modul yang diformat dengan benar?
Cara termudah 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 Tags. Cukup isi kekosongan, 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 persyaratan untuk menerbitkan skrip ke Galeri?
Semua jenis skrip PowerShell (skrip atau alur kerja) dapat diterbitkan ke galeri. Untuk menerbitkan skrip, PowerShellGet perlu mengetahui beberapa hal tentangnya - 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. Skrip apa pun yang menyertakan informasi berikut di bagian PSScriptInfo-nya dapat dipublikasikan ke Galeri:
- Versi
- Deskripsi
- Author
- URI ke persyaratan lisensi skrip, baik sebagai bagian dari bagian PSScriptInfo skrip, atau dalam parameter LicenseUri dari 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 dipublikasikan, termasuk judul, deskripsi, dan seluruh metadata. Kemudian, berdasarkan skor kualitas tertimbang, itu akan menampilkan kecocokan terdekat. Anda juga dapat mencari berdasarkan bidang tertentu menggunakan sintaks field:"value" dalam kueri pencarian untuk bidang berikut:
- Tags
- Functions
- Cmdlet
- Sumber Daya Dsc
- 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 termudah 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 Tags. 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 .
Apa jenis Modul PowerShell lainnya yang ada?
Istilah modul PowerShell juga mengacu pada file yang mengimplementasikan 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 bisa membingungkan karena arti yang berbeda ini. Kecuali dinyatakan lain secara eksplisit, semua penggunaan kata modul di halaman ini mengacu pada folder modul yang berisi file-file ini.
Bagaimana hubungan PackageManagement dengan PowerShellGet? (Jawaban Tingkat Tinggi)
PackageManagement adalah antarmuka umum untuk bekerja dengan pengelola paket apa pun. Pada akhirnya, apakah Anda berurusan dengan modul PowerShell, MSI, permata 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 pengelola paket yang dicolokkan ke PackageManagement. Penyedia melakukan semua pekerjaan yang sebenarnya; Mereka mengambil konten dari repositori, dan menginstal konten secara lokal. Seringkali, penyedia paket hanya membungkus alat pengelola paket yang ada untuk jenis paket tertentu.
PowerShellGet adalah pengelola 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 PowerShell Gallery.
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 sebenarnya berhubungan dengan PowerShellGet?.
Untuk informasi lebih lanjut, silakan kunjungi halaman proyek PackageManagement.
Bagaimana hubungan NuGet dengan PowerShellGet?
PowerShell Gallery adalah versi modifikasi dari Galeri NuGet. PowerShellGet menggunakan penyedia NuGet untuk bekerja dengan repositori berbasis NuGet seperti PowerShell Gallery.
Anda dapat menggunakan PowerShellGet terhadap repositori NuGet atau berbagi file yang valid. Anda hanya perlu menambahkan repositori dengan menjalankan cmdlet Register-PSRepository .
Apakah itu berarti saya dapat menggunakan NuGet.exe untuk bekerja dengan Galeri?
Yes.
Bagaimana sebenarnya PackageManagement berhubungan dengan PowerShellGet? (Rincian 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.
Pada lapisan penyedia paket PackageManagement, penyedia paket PSModule benar-benar memanggil penyedia paket PackageManagement lainnya. Misalnya, saat Anda bekerja dengan galeri berbasis NuGet (seperti PowerShell Gallery), penyedia paket PSModule menggunakan Penyedia Paket NuGet untuk bekerja dengan repositori.
Gambar 1: Arsitektur PowerShellGet
Apa yang diperlukan untuk menjalankan PowerShellGet?
Secara umum, kami merekomendasikan untuk memilih modul PowerShellGet versi terbaru (perhatikan bahwa ini 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 Perusahaan
- Windows 7 SP1
- Server Windows 2016
- Windows Server 2012 R2
- Windows Server 2008 R2 SP1
PowerShellGet juga memerlukan .NET Framework 4.5 atau yang 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 mungkin untuk menjongkokkan nama paket. Jika Anda merasa paket yang ada telah mengambil nama yang lebih sesuai dengan paket Anda, coba hubungi pemilik paket tersebut. Jika Anda tidak mendapatkan respons dalam beberapa minggu, Anda dapat menghubungi dukungan dan tim PowerShell Gallery akan memeriksanya.
Bagaimana cara mengklaim kepemilikan paket?
Lihat Mengelola Pemilik Paket di PowerShellGallery.com untuk detailnya.
Bagaimana cara menangani pemilik paket yang melanggar lisensi paket saya?
Kami mendorong komunitas PowerShell untuk bekerja sama untuk menyelesaikan perselisihan apa pun yang mungkin timbul antara pemilik paket dan pemilik paket lain. Kami telah menyusun proses penyelesaian sengketa yang kami minta untuk Anda ikuti sebelum administrator PowerShellGallery.com menengahi.