2017-03-06 8 views
4

한 PowerShell 스크립트에서 일부 PowerShell 모듈을 사용하고 있습니다. 다음 명령을 사용하여 "C : \ Program Files \ WindowsPowerShell \ Modules"에 모듈 (예 : XXXX)을 설치합니다.PowerShell 5.1 - 현재 사용중인 모듈을 제거하는 방법

Install-Module -Name "XXXX" -AllowClobber -RequiredVersion "XXXX" -Repository "XXXX" -Scope AllUsers 

이제이 모듈의 기능을 사용한 후에는 다음 명령을 사용하여 배포 스크립트의 끝에서 제거합니다.

Remove-Module -Name "XXXX" -force 
Uninstall-Module -Name "XXXX" -AllVersions -force 

그러나이 제거 모듈 명령은 다음 오류를 제공합니다.

WARNING: The version '###' of module 'XXXX' is currently in use. Retry the operation after closing the 
applications. 
PackageManagement\Uninstall-Package : Module 'XXXX' is in currently in use. 
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:2046 char:21 
+ ...  $null = PackageManagement\Uninstall-Package @PSBoundParameters 
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (Microsoft.Power...ninstallPackage:UninstallPackage) [Uninstall-Packag 
    e], Exception 
    + FullyQualifiedErrorId : ModuleIsInUse,Uninstall-Package,Microsoft.PowerShell.PackageManagement.Cmdlets.Uninstall 
    Package 

누구든지 문제를 해결할 수 있습니까?

답변

0

문제는 기존 PowerShell 세션이 언로드하려고해도 (전역 변수 나 상수와 같은) 가능한 요소를로드하여 모듈을 "잠그는"문제 일 수 있습니다 (Remove-Module).

잠기지 않는 가장 확실한 방법은 PowerShell 세션을 종료하는 것입니다. 나중에 "물건"을 만들기 위해 세션을 주변에 유지해야하는 경우 모듈을 사용하기 직전에 새로운 PowerShell 세션 (중첩 세션)을 시작한 다음 끝내면 종료하십시오.

+0

로얄 아픔이 내 뒤에서 있지만 그 이유와 해결책 인 것으로 보입니다. –