Remove-Module

현재 세션에서 모듈을 제거합니다.

Syntax

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

cmdlet은 Remove-Module 현재 세션에서 cmdlet 및 함수와 같은 모듈의 멤버를 제거합니다.

모듈에 어셈블리(.dll)가 포함된 경우 어셈블리에 의해 구현되는 모든 멤버는 제거되지만 어셈블리는 언로드되지 않습니다.

이 cmdlet은 모듈을 제거하거나 컴퓨터에서 삭제하지 않습니다. 현재 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')".

이 명령은 현재 세션에서 BitsTransferPSDiagnostics 모듈을 제거합니다.

이 명령은 파이프라인 연산자(|)를 사용하여 모듈 이름을 Remove-Module. 자세한 정보 표시 공통 매개 변수를 사용하여 제거된 멤버에 대한 자세한 정보를 가져옵니다.

자세한 정보 표시 메시지에는 제거된 항목이 표시됩니다. BitsTransfer 모듈에는 해당 cmdlet을 구현하는 어셈블리와 자체 어셈블리가 있는 중첩된 모듈이 포함되어 있기 때문에 메시지가 다릅니다. PSDiagnostics 모듈에는 함수를 내보내는 모듈 스크립트 파일(.psm1)이 포함되어 있습니다.

예제 4: ModuleInfo를 사용하여 모듈 제거

$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $a

이 명령은 ModuleInfo 매개 변수를 사용하여 BitsTransfer 모듈을 제거합니다.

예제 5: OnRemove 이벤트 사용

모듈을 제거할 때 모듈이 제거되는 것에 반응하고 리소스 해제와 같은 일부 클린up 작업을 수행할 수 있도록 하는 모듈의 이벤트 트리거가 있습니다.

$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. PowerShell 세션이 종료되면 스크립트 블록을 실행하는 데 사용할 Register-EngineEvent 수도 있습니다.

스크립트 기반 모듈의 경우 이 코드를 .PSM1 파일에 추가하거나 모듈 매니페스트의 ScriptsToProcess 속성에 나열된 시작 스크립트에 넣습니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

이 cmdlet은 읽기 전용 모듈을 제거한다는 것을 나타냅니다. 기본적으로 Remove-Module 읽기/쓰기 모듈만 제거합니다.

ReadOnlyReadWrite 값은 모듈의 AccessMode 속성에 저장됩니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

값은 모듈 이름, 전체 모듈 사양 또는 모듈 파일 경로일 수 있습니다.

값이 경로인 경우 경로는 정규화되거나 상대적일 수 있습니다. 상대 경로는 using 문을 포함하는 스크립트를 기준으로 확인됩니다.

값이 이름 또는 모듈 사양인 경우 PowerShell은 PSModulePath에서 지정된 모듈을 검색합니다.

모듈 사양은 다음 키가 있는 해시 테이블입니다.

  • ModuleName - 필수 모듈 이름을 지정합니다.
  • GUID - 선택 사항 모듈의 GUID를 지정합니다.
  • 또한 아래 세 가지 키 중 하나 이상을 지정해야 합니다 .
    • ModuleVersion - 모듈의 허용 가능한 최소 버전을 지정합니다.
    • MaximumVersion - 모듈의 허용되는 최대 버전을 지정합니다.
    • RequiredVersion - 모듈의 정확한 필수 버전을 지정합니다. 다른 버전 키에는 사용할 수 없습니다.
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ModuleInfo

제거할 모듈 개체를 지정합니다. PSModuleInfo 개체 또는 명령과 같은 모듈 개체를 가져오는 명령이 포함된 변수를 Get-Module 입력합니다. 모듈 개체를 .에 파이프할 Remove-Module수도 있습니다.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

제거할 모듈의 이름을 지정합니다. 와일드카드 문자를 사용할 수 있습니다. 이름 문자열을 .에 파이프할 Remove-Module수도 있습니다.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

String

모듈 이름을 이 cmdlet으로 파이프할 수 있습니다.

PSModuleInfo

모듈 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.

참고

PowerShell에는 다음 별칭이 포함됩니다.Remove-Module

  • 모든 플랫폼:
    • rmo

모듈을 제거하면 일부 클린up 코드를 실행하는 데 사용할 수 있는 이벤트가 트리거됩니다. 자세한 내용은 예제 5를 참조하세요.