Remove-Module
Удаляет модули из текущего сеанса.
Синтаксис
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Module
[-ModuleInfo] <PSModuleInfo[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Remove-Module
удаляет члены модуля, такие как командлеты и функции, из текущего сеанса.
Если модуль включает сборку (.dll
), все члены, реализованные сборкой, удаляются, но сборка не выгружается.
Этот командлет не удаляет модуль или не удаляет его с компьютера. Это влияет только на текущий сеанс PowerShell.
Примеры
Пример 1. Удаление модуля
Remove-Module -Name "BitsTransfer"
Эта команда удаляет модуль BitsTransfer
Пример 2. Удаление всех модулей
Get-Module | Remove-Module
Эта команда удаляет все модули из текущего сеанса.
Пример 3. Удаление модулей с помощью конвейера
"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')".
Эта команда удаляет модули BitsTransfer и PSDiagnostics из текущего сеанса.
Команда использует оператор конвейера (|
) для отправки имен модулей в Remove-Module
. В нем используется подробный общий параметр для получения подробных сведений об удаленных членах.
В сообщениях подробных отображаются удаленные элементы. Сообщения отличаются, так как модуль BitsTransfer включает сборку, которая реализует свои командлеты и вложенный модуль с собственной сборкой. Модуль PSDiagnostics включает файл скрипта модуля (.psm1
), который экспортирует функции.
Пример 4. Удаление модуля с помощью ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a
Эта команда использует параметр ModuleInfo для удаления модуля BitsTransfer.
Параметры
-Confirm
Запрашивает подтверждение перед запуском командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Force
Указывает, что этот командлет удаляет модули только для чтения. По умолчанию Remove-Module
удаляет только модули чтения и записи.
Значения ReadOnly и ReadWrite хранятся в свойстве AccessMode модуля.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FullyQualifiedName
Указывает полные имена модулей для удаления.
Тип: | ModuleSpecification[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-ModuleInfo
Указывает объекты модуля для удаления. Введите переменную, содержащую объект модуля (PSModuleInfo) или команду, которая получает объект модуля, например команду Get-Module
. Можно также передать объекты модуля в Remove-Module
.
Тип: | PSModuleInfo[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Указывает имена модулей для удаления. Разрешены подстановочные знаки. Строки имен также можно передать в Remove-Module
.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-WhatIf
Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
System.String, System.Management.Automation.PSModuleInfo
Имена модулей и объекты модулей можно передавать в Remove-Module
.
Выходные данные
None
Этот командлет не создает выходные данные.
Примечания
При удалении модуля в модуле будет выполнено событие. Это событие позволяет модулю реагировать на удаление и выполнять некоторые очистки, такие как освобождение ресурсов. Пример:
$OnRemoveScript = {
# выполнение очистки
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
Для полной согласованности может быть также полезно реагировать на закрытие процесса PowerShell:
Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Action $OnRemoveScript