Delen via


Remove-Module

Hiermee verwijdert u modules uit de huidige sessie.

Syntax

Remove-Module
      [-Name] <String[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Module
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Module
      [-ModuleInfo] <PSModuleInfo[]>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

De Remove-Module cmdlet verwijdert de leden van een module, zoals cmdlets en functies, uit de huidige sessie.

Als de module een assembly (.dll) bevat, worden alle leden verwijderd die door de assembly zijn geïmplementeerd, maar wordt de assembly niet verwijderd.

Met deze cmdlet wordt de module niet verwijderd of van de computer verwijderd. Dit is alleen van invloed op de huidige PowerShell-sessie.

Voorbeelden

Voorbeeld 1: Een module verwijderen

Remove-Module -Name "BitsTransfer"

Met deze opdracht verwijdert u de BitsTransfer-module uit de huidige sessie.

Voorbeeld 2: Alle modules verwijderen

Get-Module | Remove-Module

Met deze opdracht verwijdert u alle modules uit de huidige sessie.

Voorbeeld 3: Modules verwijderen met behulp van de pijplijn

"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')".

Met deze opdracht verwijdert u de modules BitsTransfer en PSDiagnostics uit de huidige sessie.

De opdracht maakt gebruik van een pijplijnoperator (|) om de modulenamen te verzenden naar Remove-Module. De algemene parameter Uitgebreid wordt gebruikt om gedetailleerde informatie op te halen over de leden die worden verwijderd.

In de uitgebreide berichten worden de items weergegeven die zijn verwijderd. De berichten verschillen omdat de BitsTransfer-module een assembly bevat die de cmdlets implementeert en een geneste module met een eigen assembly. De PSDiagnostics-module bevat een modulescriptbestand (.psm1) waarmee functies worden geëxporteerd.

Voorbeeld 4: Een module verwijderen met ModuleInfo

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

Met deze opdracht wordt de parameter ModuleInfo gebruikt om de bitstransfermodule te verwijderen.

Voorbeeld 5: de gebeurtenis OnRemove gebruiken

Wanneer u een module verwijdert, is er een gebeurtenistrigger door de module waarmee een module kan reageren op een verwijdering en een opschoontaak kan uitvoeren, zoals het vrijmaken van resources.

$OnRemoveScript = {
    # perform cleanup
    $cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript

$registerEngineEventSplat = @{
    SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
    Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat

De $OnRemoveScript variabele bevat het scriptblok waarmee de resources worden opgeschoond. U registreert het scriptblok door het toe te wijzen aan $ExecutionContext.SessionState.Module.OnRemove. U kunt ook gebruiken Register-EngineEvent om het scriptblok uit te voeren wanneer de PowerShell-sessie wordt beëindigd.

Voor op scripts gebaseerde modules voegt u deze code toe aan het .PSM1 bestand of plaatst u deze in een opstartscript dat wordt vermeld in de eigenschap ScriptsToProcess van het modulemanifest.

Parameters

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

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

-Force

Geeft aan dat deze cmdlet alleen-lezen modules verwijdert. Standaard verwijdert Remove-Module u alleen lees-schrijfmodules.

De waarden ReadOnly en ReadWrite worden opgeslagen in de eigenschap AccessMode van een module.

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

-FullyQualifiedName

De waarde kan een modulenaam, een volledige modulespecificatie of een pad naar een modulebestand zijn.

Wanneer de waarde een pad is, kan het pad volledig gekwalificeerd of relatief zijn. Een relatief pad wordt omgezet ten opzichte van het script dat de using-instructie bevat.

Wanneer de waarde een naam of modulespecificatie is, zoekt PowerShell in PSModulePath naar de opgegeven module.

Een modulespecificatie is een hashtabel met de volgende sleutels.

  • ModuleName - Vereist Hiermee geeft u de naam van de module.
  • GUID - Optionele Hiermee geeft u de GUID van de module.
  • Het is ook Vereist om ten minste een van de drie onderstaande sleutels op te geven.
    • ModuleVersion - Hiermee geeft u een minimaal aanvaardbare versie van de module op.
    • MaximumVersion - Hiermee geeft u de maximaal aanvaardbare versie van de module op.
    • RequiredVersion - Hiermee geeft u een exacte, vereiste versie van de module op. Dit kan niet worden gebruikt met de andere versiesleutels.
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ModuleInfo

Hiermee geeft u de moduleobjecten te verwijderen. Voer een variabele in die een PSModuleInfo-object bevat of een opdracht waarmee een moduleobject wordt opgehaald, zoals een Get-Module opdracht. U kunt ook moduleobjecten doorsnijden naar Remove-Module.

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

-Name

Hiermee geeft u de namen van modules te verwijderen. Jokertekens zijn toegestaan. U kunt ook naamtekenreeksen doorsluizen naar Remove-Module.

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

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

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

Invoerwaarden

String

U kunt een modulenaam doorsnijden naar deze cmdlet.

PSModuleInfo

U kunt een moduleobject doorsnijden naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.

Notities

PowerShell bevat de volgende aliassen voor Remove-Module:

  • Alle platformen:
    • rmo

Wanneer u een module verwijdert, wordt er een gebeurtenis geactiveerd die kan worden gebruikt om opschooncode uit te voeren. Zie voorbeeld 5 voor meer informatie.