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: Hapus 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 menyertakan perakitan yang mengimplementasikan cmdlet dan modul berlapis dengan rakitannya sendiri. Modul PSDiagnostics menyertakan file skrip modul (.psm1) yang mengekspor fungsi.

Contoh 4: Menghapus modul dengan menggunakan ModuleInfo

$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a

Perintah ini menggunakan parameter ModuleInfo untuk menghapus modul BitsTransfer.

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

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

-ModuleInfo

Menentukan objek modul yang akan dihapus. Masukkan variabel yang berisi objek modul (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
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
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
Accept pipeline input:False
Accept wildcard characters:False

Input

System.String, System.Management.Automation.PSModuleInfo

Anda dapat menyalurkan nama modul dan objek modul ke Remove-Module.

Output

None

Cmdlet ini tidak menghasilkan output apa pun.

Catatan

Saat menghapus modul, ada peristiwa pada modul yang akan dijalankan. Kejadian ini memungkinkan modul untuk bereaksi terhadap dihapus dan melakukan beberapa pembersihan seperti membebaskan sumber daya. Contoh:

$OnRemoveScript = {

# lakukan pembersihan

$cachedSessions | Remove-PSSession

}

$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript

Untuk konsistensi penuh, mungkin juga berguna untuk bereaksi terhadap penutupan proses PowerShell:

Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action $OnRemoveScript