Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setelah membuat modul PowerShell, Anda mungkin ingin menginstal modul pada sistem, sehingga Anda atau orang lain dapat menggunakannya. Secara umum, ini terdiri dari menyalin file modul (yaitu, .psm1, atau rakitan biner, manifes modul, dan file terkait lainnya) ke direktori di komputer tersebut. Untuk proyek yang sangat kecil, ini mungkin sesingkat menyalin dan menempelkan file dengan Windows Explorer ke satu komputer jarak jauh; namun, untuk solusi yang lebih besar, Anda mungkin ingin menggunakan proses penginstalan yang lebih canggih. Terlepas dari bagaimana Anda mendapatkan modul Anda ke sistem, PowerShell dapat menggunakan sejumlah teknik yang akan memungkinkan pengguna menemukan dan menggunakan modul Anda. Oleh karena itu, masalah utama untuk penginstalan adalah memastikan bahwa PowerShell akan dapat menemukan modul Anda. Untuk informasi selengkapnya, lihat Mengimpor Modul PowerShell.
Aturan untuk Menginstal Modul
Informasi berikut berkaitan dengan semua modul, termasuk modul yang Anda buat untuk penggunaan Anda sendiri, modul yang Anda dapatkan dari pihak lain, dan modul yang Anda distribusikan ke orang lain.
Menginstal Modul di PSModulePath
Jika memungkinkan, instal semua modul di jalur yang tercantum dalam variabel lingkungan PSModulePath atau tambahkan jalur modul ke nilai variabel lingkungan PSModulePath.
Variabel lingkungan PSModulePath ($Env:PSModulePath) berisi lokasi modul Windows PowerShell. Cmdlet mengandalkan nilai variabel lingkungan ini untuk menemukan modul.
Secara default, nilai variabel lingkungan PSModulePath berisi direktori modul sistem dan pengguna berikut, tetapi Anda dapat menambahkan dan mengedit nilainya.
$PSHOME\Modules(%windir%\System32\WindowsPowerShell\v1.0\Modules)Peringatan
Lokasi ini dicadangkan untuk modul yang dikirim dengan Windows. Jangan instal modul ke lokasi ini.
$HOME\Documents\WindowsPowerShell\Modules(%HOMEDRIVE%%HOMEPATH%\Documents\WindowsPowerShell\Modules)$Env:ProgramFiles\WindowsPowerShell\Modules(%ProgramFiles%\WindowsPowerShell\Modules)Untuk mendapatkan nilai variabel lingkungan PSModulePath, gunakan salah satu perintah berikut.
$Env:PSModulePath [Environment]::GetEnvironmentVariable("PSModulePath")Untuk menambahkan jalur modul ke nilai nilai variabel lingkungan PSModulePath, gunakan format perintah berikut. Format ini menggunakan metode SetEnvironmentVariable dari kelas System.Environment untuk membuat perubahan independen sesi ke variabel lingkungan PSModulePath.
#Save the current value in the $p variable. $p = [Environment]::GetEnvironmentVariable("PSModulePath") #Add the new path to the $p variable. Begin with a semi-colon separator. $p += ";C:\Program Files (x86)\MyCompany\Modules\" #Add the paths in $p to the PSModulePath value. [Environment]::SetEnvironmentVariable("PSModulePath",$p)Penting
Setelah Anda menambahkan jalur ke PSModulePath, Anda harus menyiarkan pesan lingkungan tentang perubahan tersebut. Menyiarkan perubahan memungkinkan aplikasi lain, seperti shell, untuk mengambil perubahan. Untuk menyiarkan perubahan, minta kode penginstalan produk Anda mengirim pesan WM_SETTINGCHANGE dengan
lParamdiatur ke string "Lingkungan". Pastikan untuk mengirim pesan setelah kode penginstalan modul Anda telah memperbarui PSModulePath.
Gunakan Nama Direktori Modul yang Benar
Modul yang terbentuk dengan baik adalah modul yang disimpan dalam direktori yang memiliki nama yang sama dengan nama dasar setidaknya satu file di direktori modul. Jika modul tidak terbentuk dengan baik, Windows PowerShell tidak mengenalinya sebagai modul.
"Nama dasar" file adalah nama tanpa ekstensi nama file. Dalam modul yang terbentuk dengan baik, nama direktori yang berisi file modul harus cocok dengan nama dasar setidaknya satu file dalam modul.
Misalnya, dalam modul Fabrikam sampel, direktori yang berisi file modul diberi nama "Fabrikam" dan setidaknya satu file memiliki nama dasar "Fabrikam". Dalam hal ini, Fabrikam.psd1 dan Fabrikam.dll memiliki nama dasar "Fabrikam".
C:\Program Files
Fabrikam Technologies
Fabrikam Manager
Modules
Fabrikam
Fabrikam.psd1 (module manifest)
Fabrikam.dll (module assembly)
Efek Penginstalan yang Salah
Jika modul tidak terbentuk dengan baik dan lokasinya tidak termasuk dalam nilai variabel lingkungan PSModulePath, fitur penemuan dasar Windows PowerShell, seperti berikut ini, tidak berfungsi.
Fitur Pemuatan Otomatis Modul tidak dapat mengimpor modul secara otomatis.
Parameter
ListAvailablecmdlet Get-Module tidak dapat menemukan modul.Cmdlet Import-Module tidak dapat menemukan modul. Untuk mengimpor modul, Anda harus menyediakan jalur lengkap ke file modul root atau file manifes modul.
Fitur tambahan, seperti berikut ini, tidak berfungsi kecuali modul diimpor ke dalam sesi. Dalam modul yang terbentuk dengan baik dalam variabel lingkungan PSModulePath, fitur-fitur ini berfungsi bahkan ketika modul tidak diimpor ke dalam sesi.
Cmdlet Get-Command tidak dapat menemukan perintah dalam modul.
Cmdlet Update-Help dan Save-Help tidak dapat memperbarui atau menyimpan bantuan untuk modul.
cmdlet Show-Command tidak dapat menemukan dan menampilkan perintah dalam modul.
Perintah dalam modul hilang dari jendela
Show-Commanddi Windows PowerShell Integrated Scripting Environment (ISE).
Tempat Menginstal Modul
Bagian ini menjelaskan di mana dalam sistem file untuk menginstal modul Windows PowerShell. Lokasi tergantung pada bagaimana modul digunakan.
Menginstal Modul untuk Pengguna Tertentu
Jika Anda membuat modul Anda sendiri atau mendapatkan modul dari pihak lain, seperti situs web komunitas Windows PowerShell, dan Anda ingin modul hanya tersedia untuk akun pengguna Anda, instal modul di direktori Modul khusus pengguna Anda.
$HOME\Documents\WindowsPowerShell\Modules\<Module Folder>\<Module Files>
Direktori Modul khusus pengguna ditambahkan ke nilai variabel lingkungan PSModulePath secara default.
Menginstal Modul untuk semua Pengguna dalam File Program
Jika Anda ingin modul tersedia untuk semua akun pengguna di komputer, instal modul di lokasi File Program.
$Env:ProgramFiles\WindowsPowerShell\Modules\<Module Folder>\<Module Files>
Nota
Lokasi File Program ditambahkan ke nilai variabel lingkungan PSModulePath secara default di Windows PowerShell 4.0 dan yang lebih baru. Untuk versi Windows PowerShell yang lebih lama, Anda dapat membuat lokasi File Program secara manual (%ProgramFiles%\WindowsPowerShell\Modules) dan menambahkan jalur ini ke variabel lingkungan PSModulePath Anda seperti yang dijelaskan di atas.
Menginstal Modul di Direktori Produk
Jika Anda mendistribusikan modul ke pihak lain, gunakan lokasi File Program default yang dijelaskan di atas, atau buat subdirektori khusus perusahaan atau khusus produk Anda sendiri dari direktori %ProgramFiles%.
Misalnya, Fabrikam Technologies, perusahaan fiktif, mengirimkan modul Windows PowerShell untuk produk Fabrikam Manager mereka. Alat penginstal modul mereka membuat subdirektori Modul di subdirektori produk Fabrikam Manager.
C:\Program Files
Fabrikam Technologies
Fabrikam Manager
Modules
Fabrikam
Fabrikam.psd1 (module manifest)
Fabrikam.dll (module assembly)
Untuk mengaktifkan fitur penemuan modul Windows PowerShell untuk menemukan modul Fabrikam, penginstal modul Fabrikam menambahkan lokasi modul ke nilai variabel lingkungan PSModulePath.
$p = [Environment]::GetEnvironmentVariable("PSModulePath")
$p += ";C:\Program Files\Fabrikam Technologies\Fabrikam Manager\Modules\"
[Environment]::SetEnvironmentVariable("PSModulePath",$p)
Menginstal Modul di Direktori File Umum
Jika modul digunakan oleh beberapa komponen produk atau oleh beberapa versi produk, instal modul dalam subdirektori khusus modul dari subdirektori %ProgramFiles%\Common Files\Modules.
Dalam contoh berikut, modul Fabrikam diinstal dalam subdirektori Fabrikam dari subdirektori %ProgramFiles%\Common Files\Modules. Perhatikan bahwa setiap modul berada di subdirektorinya sendiri di subdirektori Modul.
C:\Program Files
Common Files
Modules
Fabrikam
Fabrikam.psd1 (module manifest)
Fabrikam.dll (module assembly)
Kemudian, alat penginstal memastikan nilai variabel lingkungan PSModulePath mencakup jalur subdirektori Common Files\Modules.
$m = $Env:ProgramFiles + '\Common Files\Modules'
$p = [Environment]::GetEnvironmentVariable("PSModulePath")
$q = $p -split ';'
if ($q -notcontains $m) {
$q += ";$m"
}
$p = $q -join ';'
[Environment]::SetEnvironmentVariable("PSModulePath", $p)
Menginstal Beberapa Versi Modul
Untuk menginstal beberapa versi modul yang sama, gunakan prosedur berikut.
- Buat direktori untuk setiap versi modul. Sertakan nomor versi dalam nama direktori.
- Buat manifes modul untuk setiap versi modul. Dalam nilai kunci ModuleVersion dalam manifes, masukkan nomor versi modul. Simpan file manifes (
.psd1) di direktori khusus versi untuk modul. - Tambahkan jalur folder akar modul ke nilai variabel lingkungan PSModulePath, seperti yang ditunjukkan dalam contoh berikut.
Untuk mengimpor versi modul tertentu, pengguna akhir dapat menggunakan parameter MinimumVersion atau RequiredVersion cmdlet Import-Module.
Misalnya, jika modul Fabrikam tersedia dalam versi 8.0 dan 9.0, struktur direktori modul Fabrikam mungkin menyerupai yang berikut ini.
C:\Program Files
Fabrikam Manager
Fabrikam8
Fabrikam
Fabrikam.psd1 (module manifest: ModuleVersion = "8.0")
Fabrikam.dll (module assembly)
Fabrikam9
Fabrikam
Fabrikam.psd1 (module manifest: ModuleVersion = "9.0")
Fabrikam.dll (module assembly)
Alat penginstal menambahkan kedua jalur modul ke nilai variabel lingkungan PSModulePath.
$p = [Environment]::GetEnvironmentVariable("PSModulePath")
$p += ";C:\Program Files\Fabrikam\Fabrikam8;C:\Program Files\Fabrikam\Fabrikam9"
[Environment]::SetEnvironmentVariable("PSModulePath",$p)
Ketika langkah-langkah ini selesai, parameter ListAvailable cmdlet Get-Module mendapatkan kedua modul Fabrikam. Untuk mengimpor modul tertentu, gunakan parameter MinimumVersion atau RequiredVersion cmdlet Import-Module.
Jika kedua modul diimpor ke sesi yang sama, dan modul berisi cmdlet dengan nama yang sama, cmdlet yang diimpor terakhir efektif dalam sesi.
Menangani Konflik Nama Perintah
Konflik nama perintah dapat terjadi ketika perintah yang diekspor modul memiliki nama yang sama dengan perintah dalam sesi pengguna.
Ketika sesi berisi dua perintah yang memiliki nama yang sama, Windows PowerShell menjalankan jenis perintah yang diutamakan. Ketika sesi berisi dua perintah yang memiliki nama yang sama dan jenis yang sama, Windows PowerShell menjalankan perintah yang ditambahkan ke sesi baru-baru ini. Untuk menjalankan perintah yang tidak dijalankan secara default, pengguna dapat memenuhi syarat nama perintah dengan nama modul.
Misalnya, jika sesi berisi fungsi Get-Date dan cmdlet Get-Date, Windows PowerShell menjalankan fungsi secara default. Untuk menjalankan cmdlet, awali perintah dengan nama modul, seperti:
Microsoft.PowerShell.Utility\Get-Date
Untuk mencegah konflik nama, penulis modul dapat menggunakan kunci DefaultCommandPrefix dalam manifes modul untuk menentukan awalan kata benda untuk semua perintah yang diekspor dari modul.
Pengguna dapat menggunakan parameter Awalan cmdlet Import-Module untuk menggunakan awalan alternatif. Nilai parameter Prefiks lebih diutamakan daripada nilai kunci DefaultCommandPrefix.
Jalur pendukung pada sistem non-Windows
Platform non-Windows menggunakan karakter titik dua (:) sebagai pemisah jalur dan karakter garis miring (/) sebagai pemisah direktori. Kelas [System.IO.Path] memiliki anggota statis yang dapat digunakan untuk membuat kode Anda berfungsi di platform apa pun:
-
[System.IO.Path]::PathSeparator- mengembalikan karakter yang digunakan untuk memisahkan jalur dalam variabel lingkungan PATH untuk platform host -
[System.IO.Path]::DirectorySeparatorChar- mengembalikan karakter yang digunakan untuk memisahkan nama direktori dengan jalur untuk platform host
Gunakan properti statis ini untuk menggantikan karakter ; dan \ saat Anda membuat string jalur.