Remove-Module
Hiermee verwijdert u modules uit de huidige sessie.
Syntaxis
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 die door de assembly worden geïmplementeerd, verwijderd, maar wordt de assembly niet verwijderd.
Met deze cmdlet wordt de module niet verwijderd of verwijderd van de computer. Dit is alleen van invloed op de huidige PowerShell-sessie.
Voorbeelden
Voorbeeld 1: Een module verwijderen
Remove-Module -Name "BitsTransfer"
Met deze opdracht wordt de BitsTransfer-module uit de huidige sessie verwijderd.
Voorbeeld 2: Alle modules verwijderen
Get-Module | Remove-Module
Met deze opdracht worden alle modules uit de huidige sessie verwijderd.
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 worden de BitsTransfer - en PSDiagnostics-modules uit de huidige sessie verwijderd.
De opdracht maakt gebruik van een pijplijnoperator (|
) om de modulenamen naar te Remove-Module
verzenden. Er wordt gebruikgemaakt van de uitgebreide algemene parameter voor gedetailleerde informatie 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 waarmee de cmdlets en een geneste module met een eigen assembly worden geïmplementeerd. De PSDiagnostics-module bevat een modulescriptbestand (.psm1
) dat functies exporteert.
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 BitsTransfer-module te verwijderen.
Voorbeeld 5: De onRemove-gebeurtenis gebruiken
Wanneer u een module verwijdert, is er een gebeurtenistrigger door de module waarmee een module kan reageren op het verwijderen en uitvoeren van een opschoontaak, 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 het Register-EngineEvent
scriptblok laten uitvoeren 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 |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Force
Geeft aan dat met deze cmdlet alleen-lezenmodules worden verwijderd. Remove-Module
Standaard worden alleen modules voor lezen/schrijven verwijderd.
De waarden ReadOnly en ReadWrite worden opgeslagen in de eigenschap AccessMode van een module.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 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 naar de PSModulePath voor de opgegeven module.
Een modulespecificatie is een hashtabel met de volgende sleutels.
ModuleName
- Vereist : hiermee geeft u de modulenaam op.GUID
- Optioneel : hiermee geeft u de GUID van de module op.- Het is ook vereist om ten minste één van de drie onderstaande sleutels op te geven.
ModuleVersion
- Hiermee geeft u een minimaal acceptabele versie van de module.MaximumVersion
- Hiermee geeft u de maximaal aanvaardbare versie van de module.RequiredVersion
- Hiermee geeft u een exacte, vereiste versie van de module. Dit kan niet worden gebruikt met de andere versiesleutels.
Type: | ModuleSpecification[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ModuleInfo
Hiermee geeft u de moduleobjecten die moeten worden verwijderd. 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 doorsluisen naar Remove-Module
.
Type: | PSModuleInfo[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Name
Hiermee geeft u de namen van modules die moeten worden verwijderd. Jokertekens zijn toegestaan. U kunt ook sluistekenreeksen naar Remove-Module
.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | True |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een modulenaam doorsluisen naar deze cmdlet.
U kunt een moduleobject doorsluisen naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert geen uitvoer.
Notities
PowerShell bevat de volgende aliassen voor Remove-Module
:
- Alle platforms:
rmo
Wanneer u een module verwijdert, wordt er een gebeurtenis geactiveerd die kan worden gebruikt om wat opschooncode uit te voeren. Zie voorbeeld 5 voor meer informatie.