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.
Пример 5. Использование события OnRemove
При удалении модуля существует триггер события модуля, который позволяет модулю реагировать на удаление и выполнять определенную задачу очистки, например освобождение ресурсов.
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplat
Переменная $OnRemoveScript
содержит блок скрипта, который очищает ресурсы. Зарегистрируйте блок скрипта, назначив его $ExecutionContext.SessionState.Module.OnRemove
. Кроме того, можно использовать Register-EngineEvent
для выполнения блока скриптов при завершении сеанса PowerShell.
Для модулей на основе скриптов вы добавите этот код в файл .PSM1
или поместите его в скрипт запуска, указанный в свойстве ScriptsToProcess манифеста модуля.
Параметры
-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
Это значение может быть именем модуля, полной спецификацией модуля или путем к файлу модуля.
Если значение является путем, путь может быть полностью или относительным. Относительный путь разрешается относительно скрипта, содержащего инструкцию using.
Если значение является спецификацией имени или модуля, PowerShell выполняет поиск PSModulePath для указанного модуля.
Спецификация модуля — это хэш-файл, имеющий следующие ключи.
-
ModuleName
- Обязательный Указывает имя модуля. -
GUID
- Необязательный указывает GUID модуля. - Это также Обязательный, чтобы указать хотя бы один из трех приведенных ниже ключей.
-
ModuleVersion
. Указывает минимальную допустимую версию модуля. -
MaximumVersion
. Указывает максимальную допустимую версию модуля. -
RequiredVersion
. Указывает точную, требуемую версию модуля. Это нельзя использовать с другими ключами версии.
-
Тип: | 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 |
Входные данные
Имя модуля можно передать этому командлету.
Объект модуля можно передать в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
PowerShell включает следующие псевдонимы для Remove-Module
:
- Все платформы:
rmo
При удалении модуля активируется событие, которое можно использовать для запуска кода очистки. Дополнительные сведения см. в примере 5.
Связанные ссылки
PowerShell