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.
Deskripsi singkat
Menjelaskan cara menginstal, mengimpor, dan menggunakan modul PowerShell.
Deskripsi panjang
Modul adalah paket yang berisi anggota PowerShell, seperti cmdlet, penyedia, fungsi, alur kerja, variabel, dan alias.
Orang yang menulis perintah dapat menggunakan modul untuk mengatur perintah mereka dan membagikannya dengan orang lain. Orang yang menerima modul dapat menambahkan perintah dalam modul ke sesi PowerShell mereka dan menggunakannya seperti perintah bawaan.
Topik ini menjelaskan cara menggunakan modul PowerShell. Untuk informasi tentang cara menulis modul PowerShell, lihat Menulis Modul PowerShell.
Apa itu modul?
Modul adalah paket yang berisi anggota PowerShell, seperti cmdlet, penyedia, fungsi, alur kerja, variabel, dan alias. Anggota paket ini dapat diimplementasikan dalam skrip PowerShell, DLL yang dikompilasi, atau kombinasi keduanya. File-file ini biasanya dikelompokkan bersama dalam satu direktori. Untuk informasi selengkapnya, lihat Memahami Modul Windows PowerShell dalam dokumentasi SDK.
Pemuatan Otomatis Modul
Dimulai di PowerShell 3.0, PowerShell mengimpor modul secara otomatis saat pertama kali Anda menjalankan perintah apa pun dalam modul yang diinstal. Anda sekarang dapat menggunakan perintah dalam modul tanpa pengaturan atau konfigurasi profil apa pun, jadi tidak perlu mengelola modul setelah Anda menginstalnya di komputer Anda.
Perintah dalam modul juga lebih mudah ditemukan.
Get-Command Cmdlet sekarang mendapatkan semua perintah di semua modul yang diinstal, bahkan jika mereka belum dalam sesi. Anda dapat menemukan perintah dan menggunakannya tanpa mengimpor perlu mengimpor modul terlebih dahulu.
Masing-masing contoh berikut menyebabkan modul CimCmdlets, yang berisi Get-CimInstance, diimpor ke dalam sesi Anda.
Jalankan Perintah
Get-CimInstance Win32_OperatingSystemDapatkan Perintah
Get-Command Get-CimInstanceDapatkan Bantuan untuk Perintah
Get-Help Get-CimInstance
Get-Command perintah yang menyertakan karakter pengganti (*) dianggap untuk penemuan, bukan penggunaan, dan tidak mengimpor modul apa pun.
Hanya modul yang disimpan di lokasi yang ditentukan oleh variabel lingkungan PSModulePath yang diimpor secara otomatis. Modul di lokasi lain harus diimpor dengan menjalankan Import-Module cmdlet.
Selain itu, perintah yang menggunakan penyedia PowerShell tidak secara otomatis mengimpor modul. Misalnya, jika Anda menggunakan perintah yang memerlukan drive WSMan:, seperti Get-PSSessionConfiguration cmdlet, Anda mungkin perlu menjalankan Import-Module cmdlet untuk mengimpor modul Microsoft.WSMan.Management yang menyertakan WSMan: drive.
Anda masih dapat menjalankan Import-Module perintah untuk mengimpor modul dan menggunakan $PSModuleAutoloadingPreference variabel untuk mengaktifkan, menonaktifkan, dan mengonfigurasi impor modul otomatis. Untuk informasi selengkapnya, lihat about_Preference_Variables.
Cara Menggunakan Modul
Untuk menggunakan modul, lakukan tugas-tugas berikut:
- Pasang modul. (Ini sering dilakukan untuk Anda.)
- Temukan perintah yang ditambahkan modul.
- Gunakan perintah yang ditambahkan modul.
Topik ini menjelaskan cara melakukan tugas-tugas ini. Ini juga mencakup informasi berguna lainnya tentang mengelola modul.
Cara Menginstal Modul
Jika Anda menerima modul sebagai folder dengan file di dalamnya, Anda perlu menginstalnya di komputer Anda sebelum dapat menggunakannya di PowerShell.
Sebagian besar modul diinstal untuk Anda. PowerShell hadir dengan beberapa modul yang sudah diinstal sebelumnya, terkadang disebut modul inti . Pada komputer berbasis Windows, jika fitur yang disertakan dengan sistem operasi memiliki cmdlet untuk mengelolanya, modul tersebut sudah diinstal sebelumnya. Saat Anda menginstal fitur Windows, dengan menggunakan, misalnya, Wizard Tambahkan Peran dan Fitur di Pengelola Server, atau kotak dialog Aktifkan atau nonaktifkan fitur Windows di Panel Kontrol, modul PowerShell apa pun yang merupakan bagian dari fitur tersebut diinstal. Banyak modul lain datang dalam program penginstal atau Setup yang menginstal modul.
Gunakan perintah berikut untuk membuat direktori Modul untuk pengguna saat ini:
New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules
Salin seluruh folder modul ke direktori Modul. Anda dapat menggunakan metode apa pun untuk menyalin folder, termasuk Windows Explorer dan Cmd.exe, serta PowerShell. Di PowerShell gunakan cmdlet Copy-Item. Misalnya, untuk menyalin folder MyModule dari C:\ps-test\MyModule direktori Modules, ketik:
Copy-Item -Path C:\ps-test\MyModule -Destination `
$HOME\Documents\PowerShell\Modules
Anda dapat menginstal modul di lokasi mana pun, tetapi menginstal modul Anda di lokasi modul default membuatnya lebih mudah dikelola. Untuk informasi selengkapnya tentang lokasi modul default, lihat bagian Lokasi Sumber Daya Modul dan DSC, dan PSModulePath .
Cara Menemukan Modul yang Terpasang
Untuk menemukan modul yang diinstal di lokasi modul default, tetapi belum diimpor ke sesi Anda, ketik:
Get-Module -ListAvailable
Untuk menemukan modul yang telah diimpor ke dalam sesi Anda, pada prompt PowerShell, ketik:
Get-Module
Untuk informasi selengkapnya tentang Get-Module cmdlet, lihat Get-Module.
Cara Menemukan Perintah dalam Modul
Gunakan cmdlet Get-Command untuk menemukan semua perintah yang tersedia. Anda dapat menggunakan parameter cmdlet Get-Command untuk memfilter perintah seperti berdasarkan modul, nama, dan kata benda.
Untuk menemukan semua perintah dalam modul, ketik:
Get-Command -Module <module-name>
Misalnya, untuk menemukan perintah dalam modul BitsTransfer, ketik:
Get-Command -Module BitsTransfer
Untuk informasi selengkapnya tentang cmdlet Get-Command, lihat Get-Command.
Cara Mendapatkan Bantuan untuk Perintah dalam Modul
Jika modul berisi file Bantuan untuk perintah yang diekspor, Get-Help cmdlet akan menampilkan topik Bantuan. Gunakan format perintah yang sama Get-Help yang akan Anda gunakan untuk mendapatkan bantuan untuk perintah apa pun di PowerShell.
Mulai PowerShell 3.0, Anda dapat mengunduh file Bantuan untuk modul dan mengunduh pembaruan ke file Bantuan sehingga tidak pernah usang.
Untuk mendapatkan bantuan untuk perintah dalam modul, ketik:
Get-Help <command-name>
Untuk mendapatkan bantuan online untuk perintah dalam modul, ketik:
Get-Help <command-name> -Online
Untuk mengunduh dan menginstal file bantuan untuk perintah dalam modul, ketik:
Update-Help -Module <module-name>
Untuk informasi selengkapnya, lihat Mendapatkan Bantuan dan Memperbarui Bantuan.
Cara Mengimpor Modul
Anda mungkin harus mengimpor modul atau mengimpor file modul. Mengimpor diperlukan ketika modul tidak diinstal di lokasi yang ditentukan oleh variabel lingkungan PSModulePath , $env:PSModulePath, atau modul terdiri dari file, seperti file .dll atau .psm1, alih-alih modul biasa yang dikirimkan sebagai folder.
Anda juga dapat memilih untuk mengimpor modul sehingga Anda dapat menggunakan parameter Import-Module perintah, seperti parameter Prefix, yang menambahkan awalan khas ke nama kata benda dari semua perintah yang diimpor, atau parameter NoClobber , yang mencegah modul menambahkan perintah yang akan menyembunyikan atau mengganti perintah yang ada dalam sesi.
Untuk mengimpor modul, gunakan Import-Module cmdlet.
Untuk mengimpor modul di lokasi PSModulePath ke dalam sesi saat ini, gunakan format perintah berikut.
Import-Module <module-name>
Misalnya, perintah berikut mengimpor modul BitsTransfer ke dalam sesi saat ini.
Import-Module BitsTransfer
Untuk mengimpor modul yang tidak berada di lokasi modul default, gunakan jalur yang sepenuhnya memenuhi syarat ke folder modul dalam perintah.
Misalnya, untuk menambahkan modul TestCmdlets di C:\ps-test direktori ke sesi Anda, ketik:
Import-Module C:\ps-test\TestCmdlets
Untuk mengimpor file modul yang tidak terkandung dalam folder modul, gunakan jalur yang memenuhi syarat sepenuhnya ke file modul dalam perintah.
Misalnya, untuk menambahkan modul TestCmdlets.dll di direktori C:\ps-test ke sesi Anda, ketik:
Import-Module C:\ps-test\TestCmdlets.dll
Untuk informasi selengkapnya tentang menambahkan modul ke sesi Anda, lihat Import-Module.
Cara Mengimpor Modul ke Setiap Sesi
Perintah Import-Module mengimpor modul ke sesi PowerShell Anda saat ini. Untuk mengimpor modul ke setiap sesi PowerShell yang Anda mulai, tambahkan perintah Import-Module ke profil PowerShell Anda.
Untuk informasi selengkapnya tentang profil, lihat about_Profiles.
Cara Menghapus Modul
Saat Anda menghapus modul, perintah yang ditambahkan modul akan dihapus dari sesi.
Untuk menghapus modul dari sesi Anda, gunakan format perintah berikut.
Remove-Module <module-name>
Misalnya, perintah berikut menghapus modul BitsTransfer dari sesi saat ini.
Remove-Module BitsTransfer
Menghapus modul membalikkan operasi impor modul. Menghapus modul tidak menghapus instalan modul. Untuk informasi selengkapnya, lihat Remove-Module.
Lokasi Sumber Daya Modul dan DSC, dan PSModulePath
Variabel lingkungan $env:PSModulePath berisi daftar lokasi folder yang dicari untuk menemukan modul dan sumber daya.
Secara default, lokasi efektif yang ditetapkan ke $env:PSModulePath adalah:
Lokasi di seluruh sistem:
$PSHOME\ModulesFolder ini berisi modul yang dikirimkan dengan Windows dan PowerShell.
Sumber daya DSC yang disertakan dengan PowerShell disimpan dalam
$PSHOME\Modules\PSDesiredStateConfiguration\DSCResourcesfolder.Modul khusus pengguna: Ini adalah modul yang diinstal oleh pengguna dalam cakupan pengguna.
memiliki parameter Cakupan yang memungkinkan Anda menentukan apakah modul diinstal untuk pengguna saat ini atau untuk semua pengguna. Untuk informasi selengkapnya, lihat Install-Module. Lokasi CurrentUser khusus pengguna di Windows adalah folder yang
PowerShell\Modulesterletak di lokasi Dokumen di profil pengguna Anda. Jalur spesifik lokasi tersebut bervariasi menurut versi Windows dan apakah Anda menggunakan pengalihan folder atau tidak. Microsoft OneDrive juga dapat mengubah lokasi folder Dokumen Anda.Secara default, di Windows 10 dan yang lebih tinggi, lokasi tersebut adalah
$HOME\Documents\PowerShell\Modules. Di Linux atau Mac, lokasi CurrentUser adalah$HOME/.local/share/powershell/Modules.Nota
Anda dapat memverifikasi lokasi folder Dokumen menggunakan perintah berikut:
[Environment]::GetFolderPath('MyDocuments').Lokasi AllUsers ada
$env:PROGRAMFILES\PowerShell\Modulesdi Windows. Di Linux atau Mac, modul disimpan di/usr/local/share/powershell/Modules.
Nota
Untuk menambahkan atau mengubah file di direktori $env:Windir\System32, mulai PowerShell dengan opsi Jalankan sebagai administrator.
Anda dapat mengubah lokasi modul default pada sistem Anda dengan mengubah nilai variabel lingkungan PSModulePath , $Env:PSModulePath. Variabel lingkungan PSModulePath dimodelkan pada variabel lingkungan Path dan memiliki format yang sama.
Untuk melihat lokasi modul default, ketik:
$Env:PSModulePath
Untuk menambahkan lokasi modul default, gunakan format perintah berikut.
$Env:PSModulePath = $Env:PSModulePath + ";<path>"
Titik koma (;) dalam perintah memisahkan jalur baru dari jalur yang mendahuluinya dalam daftar.
Misalnya, untuk menambahkan C:\ps-test\Modules direktori, ketik:
$Env:PSModulePath + ";C:\ps-test\Modules"
Untuk menambahkan lokasi modul default di Linux atau MacOS, gunakan format perintah berikut:
$Env:PSModulePath += ":<path>"
Misalnya, untuk menambahkan /usr/local/Fabrikam/Modules direktori ke nilai variabel lingkungan PSModulePath , ketik:
$Env:PSModulePath += ":/usr/local/Fabrikam/Modules"
Di Linux atau MacOS, titik dua (:) dalam perintah memisahkan jalur baru dari jalur yang mendahuluinya dalam daftar.
Saat Anda menambahkan jalur ke PSModulePath, Get-Module dan Import-Module perintah menyertakan modul di jalur tersebut.
Nilai yang Anda tetapkan hanya memengaruhi sesi saat ini. Untuk membuat perubahan persisten, tambahkan perintah ke profil PowerShell Anda atau gunakan Sistem di Panel Kontrol untuk mengubah nilai variabel lingkungan PSModulePath di registri.
Selain itu, untuk membuat perubahan persisten, Anda juga dapat menggunakan metode SetEnvironmentVariable dari kelas System.Environment untuk menambahkan Path ke variabel lingkungan PSModulePath .
Untuk informasi selengkapnya tentang variabel PSModulePath , lihat about_Environment_Variables.
Konflik Modul dan Nama
Konflik nama terjadi ketika lebih dari satu perintah dalam sesi memiliki nama yang sama. Mengimpor modul menyebabkan konflik nama ketika perintah dalam modul memiliki nama yang sama dengan perintah atau item dalam sesi.
Konflik nama dapat mengakibatkan perintah disembunyikan atau diganti.
Tersembunyi
Perintah disembunyikan ketika bukan perintah yang berjalan saat Anda mengetikkan nama perintah, tetapi Anda dapat menjalankannya dengan menggunakan metode lain, seperti dengan mengkualifikasi nama perintah dengan nama modul atau snap-in tempat perintah itu berasal.
Diganti
Perintah diganti ketika Anda tidak dapat menjalankannya karena telah ditimpa oleh perintah dengan nama yang sama. Bahkan ketika Anda menghapus modul yang menyebabkan konflik, Anda tidak dapat menjalankan perintah yang diganti kecuali Anda memulai ulang sesi.
Import-Module mungkin menambahkan perintah yang menyembunyikan dan mengganti perintah dalam sesi saat ini. Selain itu, perintah dalam sesi Anda dapat menyembunyikan perintah yang ditambahkan modul.
Untuk mendeteksi konflik nama, gunakan parameter Semua dari cmdlet Get-Command. Dimulai di PowerShell 3.0, Get-Command hanya mendapatkan perintah yang berjalan saat Anda mengetikkan nama perintah. Parameter Semua mendapatkan semua perintah dengan nama tertentu dalam sesi.
Untuk mencegah konflik nama, gunakan parameter NoClobber atau Awalan dari cmdlet Import-Module. Parameter Awalan menambahkan awalan ke nama perintah yang diimpor sehingga unik dalam sesi. Parameter NoClobber tidak mengimpor perintah apa pun yang akan menyembunyikan atau mengganti perintah yang ada dalam sesi.
Anda juga dapat menggunakan
Penulis modul dapat mencegah konflik nama dengan menggunakan properti DefaultCommandPrefix manifes modul untuk menambahkan awalan default ke semua nama perintah. Nilai parameter Awalan lebih diutamakan daripada nilai DefaultCommandPrefix.
Bahkan jika perintah disembunyikan, Anda dapat menjalankannya dengan mengkualifikasi nama perintah dengan nama modul atau snap-in tempat perintah itu berasal.
Aturan prioritas perintah PowerShell menentukan perintah mana yang berjalan saat sesi menyertakan perintah dengan nama yang sama.
Misalnya, ketika sesi menyertakan fungsi dan cmdlet dengan nama yang sama, PowerShell menjalankan fungsi secara default. Ketika sesi menyertakan perintah dengan jenis yang sama dengan nama yang sama, seperti dua cmdlet dengan nama yang sama, secara default, sesi menjalankan perintah yang terakhir ditambahkan.
Untuk informasi selengkapnya, termasuk penjelasan tentang aturan dan instruksi prioritas untuk menjalankan perintah tersembunyi, lihat about_Command_Precedence.
Modul dan Snap-in
Anda dapat menambahkan perintah ke sesi Anda dari modul dan snap-in. Modul dapat menambahkan semua jenis perintah, termasuk cmdlet, penyedia, dan fungsi, dan item, seperti variabel, alias, dan drive PowerShell. Snap-in hanya dapat menambahkan cmdlet dan penyedia.
Sebelum menghapus modul atau snap-in dari sesi Anda, gunakan perintah berikut untuk menentukan perintah mana yang akan dihapus.
Untuk menemukan sumber cmdlet dalam sesi Anda, gunakan format perintah berikut:
Get-Command <cmdlet-name> | Format-List -Property verb,noun,pssnapin,module
Misalnya, untuk menemukan sumber cmdlet Get-Date, ketik:
Get-Command Get-Date | Format-List -Property verb,noun,module
Peringatan dan Kesalahan terkait Modul
Perintah yang diekspor modul harus mengikuti aturan penamaan perintah PowerShell. Jika modul yang Anda impor mengekspor cmdlet atau fungsi yang memiliki kata kerja yang tidak disetujui dalam namanya, Import-Module cmdlet menampilkan pesan peringatan berikut.
PERINGATAN: Beberapa nama perintah yang diimpor mencakup kata kerja yang tidak disetujui yang mungkin membuatnya kurang dapat ditemukan. Gunakan parameter Verbose untuk detail lebih lanjut atau ketik Get-Verb untuk melihat daftar kata kerja yang disetujui.
Pesan ini hanyalah peringatan. Modul lengkap masih diimpor, termasuk perintah yang tidak sesuai. Meskipun pesan ditampilkan kepada pengguna modul, masalah penamaan harus diperbaiki oleh penulis modul.
Untuk menekan pesan peringatan, gunakan parameter DisableNameChecking dari Import-Module cmdlet.
Modul dan Snap-in Bawaan
Di PowerShell 2.0 dan dalam program host gaya lama di PowerShell 3.0 dan yang lebih baru, perintah inti yang diinstal dengan PowerShell dikemas dalam snap-in yang ditambahkan secara otomatis ke setiap sesi PowerShell.
Dimulai di PowerShell 3.0, untuk program host yang mengimplementasikan InitialSessionState.CreateDefault2 API status sesi awal, snap-in Microsoft.PowerShell.Core ditambahkan ke setiap sesi secara default. Modul dimuat secara otomatis pada penggunaan pertama.
Nota
Sesi jarak jauh, termasuk sesi yang dimulai dengan menggunakan New-PSSession cmdlet, adalah sesi gaya lama di mana perintah bawaan dikemas dalam snap-in.
Modul berikut (atau snap-in) diinstal dengan PowerShell.
- CimCmdlets
- Microsoft.PowerShell.Arsip
- Microsoft.PowerShell.Core
- Microsoft.PowerShell.Diagnostics
- Microsoft.PowerShell.Host
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Security
- Microsoft.PowerShell.Utility
- Microsoft.WSMan.Management
- Manajemen Paket
- PowerShellGet
- PSDesiredStateConfiguration
- PSDiagnostik
- PSReadline
Peristiwa Modul Pengelogan
Dimulai di PowerShell 3.0, Anda dapat merekam peristiwa eksekusi untuk cmdlet dan fungsi dalam modul dan snap-in PowerShell dengan mengatur properti LogPipelineExecutionDetails modul dan snap-in ke $True.
Anda juga dapat menggunakan pengaturan Kebijakan Grup, Aktifkan Pengelogan Modul, untuk mengaktifkan pengelogan modul di semua sesi PowerShell. Untuk informasi selengkapnya, lihat artikel pengelogan dan kebijakan grup.