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