PowerShell 모듈 가져오기
시스템에 모듈을 설치한 후에는 모듈을 가져올 수 있습니다. 가져오기는 사용자가 PowerShell 세션에서 해당 모듈에 액세스할 수 있도록 모듈을 활성 메모리로 로드하는 프로세스입니다. PowerShell 2.0에서는 import-Module cmdlet을 호출하여 새로 설치된 PowerShell 모듈을 가져올 수 있습니다. PowerShell 3.0에서 PowerShell은 사용자가 모듈의 함수 또는 cmdlet 중 하나를 호출할 때 모듈을 암시적으로 가져올 수 있습니다. 두 버전 모두 PowerShell에서 모듈을 찾을 수 있는 위치에 모듈을 설치한다고 가정합니다. 자세한 내용은 PowerShell 모듈 설치하는참조하세요. 모듈 매니페스트를 사용하여 모듈의 내보낼 부분을 제한할 수 있으며, Import-Module
호출의 매개 변수를 사용하여 가져올 부분을 제한할 수 있습니다.
Snap-In 가져오기(PowerShell 1.0)
PowerShell 1.0에는 모듈이 없습니다. 대신 스냅인을 등록하고 사용해야 했습니다. 그러나 모듈을 일반적으로 설치 및 가져오기가 더 쉽기 때문에 이 시점에서는 이 기술을 사용하지 않는 것이 좋습니다. 자세한 내용은 Windows PowerShell 스냅인만드는 방법을 참조하세요.
Import-Module 사용하여 모듈 가져오기(PowerShell 2.0)
PowerShell 2.0은 적절한 이름의 Import-Module cmdlet을 사용하여 모듈을 가져옵니다. 이 cmdlet이 실행되면 Windows PowerShell은 PSModulePath
변수에 지정된 디렉터리 내에서 지정된 모듈을 검색합니다. 지정된 디렉터리가 발견되면 Windows PowerShell은 모듈 매니페스트 파일(.psd1
), 스크립트 모듈 파일(.psm1
), 이진 모듈 파일(.dll) 순서대로 파일을 검색합니다. 검색에 디렉터리를 추가하는 방법에 대한 자세한 내용은 about_PSModulePath참조하세요.
다음 코드에서는 모듈을 가져오는 방법을 설명합니다.
Import-Module myModule
myModule이 PSModulePath
있다고 가정하면 PowerShell은 myModule을 활성 메모리에 로드합니다. myModule이 PSModulePath
경로에 없는 경우 PowerShell에 찾을 위치를 명시적으로 알릴 수 있습니다.
Import-Module -Name C:\myRandomDirectory\myModule -Verbose
-Verbose
매개 변수를 사용하여 모듈에서 내보내는 항목과 활성 메모리로 가져오는 항목을 식별할 수도 있습니다. 내보내기와 가져오기 모두 사용자에게 노출되는 내용을 제한합니다. 차이점은 가시성을 제어하는 사람입니다. 기본적으로 내보내기가 모듈 내의 코드에 의해 제어됩니다. 반면 가져오기는 Import-Module
호출에 의해 제어됩니다. 자세한 내용은 가져온 멤버 제한(아래)을 참조하세요.
모듈 암시적으로 가져오기(PowerShell 3.0)
Windows PowerShell 3.0부터 모듈의 cmdlet 또는 함수가 명령에 사용되는 경우 모듈을 자동으로 가져옵니다. 이 기능은 PSModulePath 환경 변수의 값에 포함된 디렉터리의 모든 모듈에서 작동합니다. 그러나 유효한 경로에 모듈을 저장하지 않으면 위에서 설명한 명시적 Import-Module 옵션을 사용하여 모듈을 로드할 수 있습니다.
다음 작업은 "모듈 자동 로드"라고도 하는 모듈의 자동 가져오기를 트리거합니다.
명령에서 cmdlet 사용 예를 들어
Get-ExecutionPolicy
입력하면Get-ExecutionPolicy
cmdlet이 포함된 Microsoft.PowerShell.Security 모듈을 가져옵니다.Get-Command cmdlet을 사용하여 명령을 가져옵니다. 예를 들어
Get-Command Get-JobTrigger
입력하면Get-JobTrigger
cmdlet이 포함된 PSScheduledJob 모듈을 가져옵니다. 와일드카드 문자를 포함하는Get-Command
명령은 검색으로 간주되며 모듈 가져오기를 트리거하지 않습니다.Get-Help cmdlet을 사용하여 cmdlet에 대한 도움말을 가져옵니다. 예를 들어
Get-Help Get-WinEvent
입력하면Get-WinEvent
cmdlet이 포함된 Microsoft.PowerShell.Diagnostics 모듈을 가져옵니다.
모듈의 자동 가져오기를 지원하기 위해 Get-Command
cmdlet은 모듈을 세션으로 가져오지 않더라도 설치된 모든 모듈의 모든 cmdlet 및 함수를 가져옵니다. 자세한 내용은 Get-Command cmdlet에 대한 도움말 항목을 참조하세요.
가져오기 프로세스
모듈을 가져오면 모듈에 대한 새 세션 상태가 생성되고 System.Management.Automation.PSModuleInfo 개체가 메모리에 만들어집니다. 가져온 각 모듈에 대해 세션 상태가 만들어집니다(루트 모듈 및 중첩된 모듈 포함). 중첩된 모듈에 의해 루트 모듈로 내보낸 멤버를 포함하여 루트 모듈에서 내보낸 멤버는 호출자의 세션 상태로 가져옵니다.
모듈에서 내보낸 멤버의 메타데이터에는 ModuleName 속성이 있습니다. 이 속성은 내보낸 모듈의 이름으로 채워집니다.
경고
내보낸 멤버의 이름이 승인되지 않은 동사를 사용하거나 멤버 이름이 제한된 문자를 사용하는 경우 Import-Module cmdlet이 실행될 때 경고가 표시됩니다.
기본적으로 Import-Module cmdlet은 파이프라인에 개체를 반환하지 않습니다. 그러나 cmdlet은 가져온 각 모듈에 대해 System.Management.Automation.PSModuleInfo 개체를 반환하는 데 사용할 수 있는 PassThru 매개 변수를 지원합니다. 호스트에 출력을 보내려면 사용자가 Write-Host cmdlet을 실행해야 합니다.
가져온 멤버 제한
Import-Module cmdlet을 사용하여 모듈을 가져오는 경우 기본적으로 중첩된 모듈에서 모듈로 내보낸 명령을 포함하여 내보낸 모든 모듈 멤버를 세션으로 가져옵니다. 기본적으로 변수와 별칭은 내보내지지 않습니다. 내보낸 멤버를 제한하려면 모듈 매니페스트사용합니다. 가져온 멤버를 제한하려면 Import-Module
cmdlet의 다음 매개 변수를 사용합니다.
함수: 이 매개 변수는 내보낸 함수를 제한합니다. (모듈 매니페스트를 사용하는 경우 FunctionsToExport 키를 참조하세요.)
` cmdlet: 이 매개 변수는 내보낸 cmdlet을 제한합니다(모듈 매니페스트를 사용하는 경우 CmdletsToExport 키를 참조하세요.)
변수: 이 매개 변수는 내보낸 변수를 제한합니다(모듈 매니페스트를 사용하는 경우 VariablesToExport 키를 참조하세요.)
별칭: 이 매개 변수는 내보낸 별칭을 제한합니다(모듈 매니페스트를 사용하는 경우 AliasesToExport 키를 참조하세요.)
또한 참조하십시오
PowerShell