Поделиться через


Remove-Module

Удаляет модули из текущего сеанса.

Синтаксис

name

Remove-Module
    [-Name] <String[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FullyQualifiedName

Remove-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ModuleInfo

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

Запрашивает подтверждение перед запуском cmdlet.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Force

Указывает, что этот командлет удаляет модули только для чтения. По умолчанию Remove-Module удаляет только модули чтения и записи.

Значения ReadOnly и ReadWrite хранятся в свойстве AccessMode модуля.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-FullyQualifiedName

Это значение может быть именем модуля, полной спецификацией модуля или путем к файлу модуля.

Если значение является путем, путь может быть полностью или относительным. Относительный путь разрешается относительно скрипта, содержащего инструкцию using.

Если значение является спецификацией имени или модуля, PowerShell выполняет поиск PSModulePath для указанного модуля.

Спецификация модуля — это хэш-файл, имеющий следующие ключи.

  • ModuleName - Обязательный Указывает имя модуля.
  • GUID - Необязательный указывает GUID модуля.
  • Это также Обязательный, чтобы указать хотя бы один из трех приведенных ниже ключей.
    • ModuleVersion. Указывает минимальную допустимую версию модуля.
    • MaximumVersion. Указывает максимальную допустимую версию модуля.
    • RequiredVersion . Указывает точную, требуемую версию модуля. Это невозможно использовать с другими ключами версии.

Свойства параметра

Тип:

ModuleSpecification[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

FullyQualifiedName
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ModuleInfo

Указывает объекты модуля для удаления. Введите переменную, содержащую объект PSModuleInfo или команду, которая получает объект модуля, например команду Get-Module. Можно также передать объекты модуля в Remove-Module.

Свойства параметра

Тип:

PSModuleInfo[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ModuleInfo
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Name

Указывает имена модулей для удаления. Разрешено использование подстановочных символов. Строки имен также можно передать в Remove-Module.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

name
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-WhatIf

Показывает, что произойдет, если командлет будет запущен. Командлет не выполняется.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

String

Имя модуля можно передать этому командлету.

PSModuleInfo

Объект модуля можно передать в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

PowerShell включает следующие псевдонимы для Remove-Module:

  • Все платформы:
    • rmo

При удалении модуля активируется событие, которое можно использовать для запуска кода очистки. Дополнительные сведения см. в примере 5.