Remove-Module
Menghapus modul dari sesi saat ini.
Sintaks
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-ModuleInfo] <PSModuleInfo[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Remove-Module
Cmdlet menghapus anggota modul, seperti cmdlet dan fungsi, dari sesi saat ini.
Jika modul menyertakan assembly (.dll
), semua anggota yang diimplementasikan oleh assembly dihapus, tetapi assembly tidak dibongkar.
Cmdlet ini tidak menghapus instalan modul atau menghapusnya dari komputer. Ini hanya memengaruhi sesi PowerShell saat ini.
Contoh
Contoh 1: Menghapus modul
Remove-Module -Name "BitsTransfer"
Perintah ini menghapus modul BitsTransfer dari sesi saat ini.
Contoh 2: Menghapus semua modul
Get-Module | Remove-Module
Perintah ini menghapus semua modul dari sesi saat ini.
Contoh 3: Menghapus modul dengan menggunakan alur
"FileTransfer", "PSDiagnostics" | Remove-Module -Verbose
VERBOSE: Performing operation "Remove-Module" on Target "filetransfer (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\filetransfer\filetransfer.psd1')".
VERBOSE: Performing operation "Remove-Module" on Target "Microsoft.BackgroundIntelligentTransfer.Management (Path: 'C:\Windows\assembly\GAC_MSIL\Microsoft.BackgroundIntelligentTransfer.Management\1.0.0.0__31bf3856ad364e35\Microsoft.BackgroundIntelligentTransfe
r.Management.dll')".
VERBOSE: Performing operation "Remove-Module" on Target "psdiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\psdiagnostics\psdiagnostics.psd1')".
VERBOSE: Removing imported function 'Start-Trace'.
VERBOSE: Removing imported function 'Stop-Trace'.
VERBOSE: Removing imported function 'Enable-WSManTrace'.
VERBOSE: Removing imported function 'Disable-WSManTrace'.
VERBOSE: Removing imported function 'Enable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Disable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Set-LogProperties'.
VERBOSE: Removing imported function 'Get-LogProperties'.
VERBOSE: Removing imported function 'Enable-PSTrace'.
VERBOSE: Removing imported function 'Disable-PSTrace'.
VERBOSE: Performing operation "Remove-Module" on Target "PSDiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\psdiagnostics\PSDiagnostics.psm1')".
Perintah ini menghapus modul BitsTransfer dan PSDiagnostics dari sesi saat ini.
Perintah menggunakan operator alur (|
) untuk mengirim nama modul ke Remove-Module
. Ini menggunakan parameter umum Verbose untuk mendapatkan informasi terperinci tentang anggota yang dihapus.
Pesan Verbose memperlihatkan item yang dihapus. Pesan berbeda karena modul BitsTransfer mencakup rakitan yang mengimplementasikan cmdlet dan modul berlapis dengan rakitannya sendiri. Modul PSDiagnostics menyertakan file skrip modul (.psm1
) yang mengekspor fungsi.
Contoh 4: Menghapus modul menggunakan ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
Perintah ini menggunakan parameter ModuleInfo untuk menghapus modul BitsTransfer.
Contoh 5: Menggunakan peristiwa OnRemove
Saat menghapus modul, ada pemicu peristiwa oleh modul yang memungkinkan modul bereaksi terhadap dihapus dan melakukan beberapa tugas pembersihan, seperti membebaskan sumber daya.
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat
Variabel $OnRemoveScript
berisi blok skrip yang membersihkan sumber daya. Anda mendaftarkan blok skrip dengan menetapkannya ke $ExecutionContext.SessionState.Module.OnRemove
. Anda juga dapat menggunakan Register-EngineEvent
untuk menjalankan blok skrip saat sesi PowerShell berakhir.
Untuk modul berbasis skrip, Anda akan menambahkan kode ini ke file atau memasukkannya ke .PSM1
dalam skrip startup yang tercantum di properti ScriptsToProcess dari manifes modul.
Parameter
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Jenis: | SwitchParameter |
Alias: | cf |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Force
Menunjukkan bahwa cmdlet ini menghapus modul baca-saja. Secara default, Remove-Module
hanya menghapus modul baca-tulis.
Nilai ReadOnly dan ReadWrite disimpan di properti AccessMode modul.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-FullyQualifiedName
Nilainya dapat berupa nama modul, spesifikasi modul lengkap, atau jalur ke file modul.
Ketika nilai adalah jalur, jalur dapat sepenuhnya memenuhi syarat atau relatif. Jalur relatif diselesaikan relatif terhadap skrip yang berisi pernyataan penggunaan.
Saat nilainya adalah spesifikasi nama atau modul, PowerShell mencari PSModulePath untuk modul yang ditentukan.
Spesifikasi modul adalah hashtable yang memiliki kunci berikut.
ModuleName
- Diperlukan Menentukan nama modul.GUID
- Opsional Menentukan GUID modul.- Diperlukan juga untuk menentukan setidaknya salah satu dari tiga kunci di bawah ini.
ModuleVersion
- Menentukan versi minimum modul yang dapat diterima.MaximumVersion
- Menentukan versi maksimum modul yang dapat diterima.RequiredVersion
- Menentukan versi modul yang tepat dan diperlukan. Ini tidak dapat digunakan dengan kunci Versi lainnya.
Jenis: | ModuleSpecification[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-ModuleInfo
Menentukan objek modul yang akan dihapus. Masukkan variabel yang berisi objek PSModuleInfo atau perintah yang mendapatkan objek modul, seperti Get-Module
perintah. Anda juga dapat menyalurkan objek modul ke Remove-Module
.
Jenis: | PSModuleInfo[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Name
Menentukan nama modul yang akan dihapus. Karakter kartubebas diizinkan. Anda juga dapat menyalurkan string nama ke Remove-Module
.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | True |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Jenis: | SwitchParameter |
Alias: | wi |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan nama modul ke cmdlet ini.
Anda dapat menyalurkan objek modul ke cmdlet ini.
Output
None
Cmdlet ini tidak mengembalikan output.
Catatan
PowerShell menyertakan alias berikut untuk Remove-Module
:
- Semua platform:
rmo
Saat Anda menghapus modul, ada peristiwa yang dipicu yang dapat digunakan untuk menjalankan beberapa kode pembersihan. Untuk detail selengkapnya, lihat Contoh 5.