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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Menentukan nama modul yang akan dihapus. Karakter kartubebas diizinkan. Anda juga dapat menyalurkan string nama ke Remove-Module.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

String

Anda dapat menyalurkan nama modul ke cmdlet ini.

PSModuleInfo

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.