항목
about_Modules
간단한 설명
Windows PowerShell 모듈을 설치하고 가져와서 사용하는 방법에 대해 설명합니다.
자세한 설명
모듈은 cmdlet, 공급자, 함수, 변수 및 별칭 등과 같은 Windows PowerShell 명령을 포함하는
하나의 패키지입니다.
명령을 작성하는 사용자는 모듈을 사용하여 자신의 명령을 구성하고 다른 사용자와 공유할 수 있습니다. 모듈을 받는
사용자는 모듈의 명령을 자신의 Windows PowerShell 세션에 추가하여 기본 제공 명령처럼 사용할 수 있습니다.
이 항목에서는 Windows PowerShell 모듈을 사용하는 방법에 대해 설명합니다. Windows
PowerShell 모듈을 작성하는 방법에 대한 자세한 내용은 MSDN(Microsoft Developer Network) 라이브러리의
"Writing a Windows PowerShell Module(Windows PowerShell 모듈 작성)"
(https://go.microsoft.com/fwlink/?LinkId=144916)을 참조하십시오.
모듈 사용 방법
모듈을 사용하려면 다음 작업을 수행합니다.
1. 모듈을 설치합니다. 대부분의 경우 이 작업은 자동으로 수행됩니다.
2. 모듈을 Windows PowerShell 세션으로 가져옵니다.
3. 모듈에서 추가한 명령을 찾습니다.
4. 모듈에서 추가한 명령을 사용합니다.
이 항목에서는 이러한 작업을 수행하는 방법에 대해 설명합니다. 또한 모듈 관리에 대한 유용한 정보를 제공합니다.
모듈 설치 방법
모듈을 파일과 함께 폴더로 받은 경우에는 컴퓨터에 설치해야 Windows PowerShell로 가져올 수 있습니다.
대부분의 모듈은 자동으로 설치됩니다. Windows PowerShell에는 사전 설치된 여러 개의 모듈이 제공됩니다.
Windows Server 2008 R2에서 서버 관리자의 기능 추가 마법사는 사용자가 선택한 기능 모듈을 자동으로
설치합니다. 다른 대부분의 모듈은 모듈을 설치하는 설치 관리자나 설치 프로그램과 함께 제공됩니다.
모듈 폴더를 설치하려면:
1. 현재 사용자에 대한 Modules 디렉터리가 없을 경우 만듭니다.
Modules 디렉터리를 만들려면 다음을 입력합니다.
new-item -type directory -path $home\Documents\WindowsPowerShell\Modules
2. 전체 모듈 폴더를 Modules 디렉터리에 복사합니다.
Windows PowerShell뿐만 아니라 Windows Explorer 및 Cmd.exe를 비롯하여
여러 가지 방법으로 폴더를 복사합니다.
Windows PowerShell에서 Copy-Item cmdlet을 사용합니다. 예를 들어
C:\ps-test\MyModule에서 Modules 디렉터리로 MyModule 폴더를 복사하려면 다음을
입력합니다.
copy-item -path c:\ps-test\MyModule -dest $home\Documents\WindowsPowerShell\Modules
원하는 위치에 모듈을 설치할 수 있지만 기본 모듈 위치에 모듈을 설치하는 것이 관리하기가 쉽습니다.
기본 모듈 위치에 대한 자세한 내용은 "모듈 위치 및 PSModulePath" 섹션을 참조하십시오.
설치된 모듈을 찾는 방법
모듈이 설치된 경우 해당 모듈을 Windows PowerShell 세션으로 가져올 수 있습니다.
기본 모듈 위치에 설치된 모듈을 찾으려면 Windows PowerShell 프롬프트에서 다음을 입력합니다.
get-module -listAvailable
현재 세션으로 가져온 모듈을 찾으려면 Windows PowerShell 프롬프트에서 다음을 입력합니다.
get-module
Get-Module cmdlet에 대한 자세한 내용은 Get-Module을 참조하십시오.
모듈을 가져오는 방법
모듈의 명령을 사용하려면 해당 모듈을 Windows PowerShell 세션으로 가져옵니다.
기본 모듈 위치에서 현재 세션으로 모듈을 가져오려면 다음 명령 형식을 사용합니다.
import-module <module-name>
예를 들어 다음 명령은 BitsTransfer 모듈을 현재 세션으로 가져옵니다.
import-module BitsTransfer
기본 모듈 위치에 없는 모듈을 가져오려면 모듈 폴더에 대한 정규화된 경로를 명령에 사용합니다.
예를 들어 C:\ps-test 디렉터리의 TestCmdlets 모듈을 현재 세션에 추가하려면 다음을 입력합니다.
import-module c:\ps-test\TestCmdlets
세션에 모듈을 추가하는 방법에 대한 자세한 내용은 Import-Module을 참조하십시오.
모든 모듈을 현재 Windows PowerShell 세션으로 가져오는 방법
Windows 7 및 Windows Server 2008 R2에서 "모든 모듈 가져오기" 작업을 수행하면 사용 가능한 모든
Windows PowerShell 모듈과 스냅인이 포함된 Windows PowerShell 세션이 열립니다.
사용 가능한 모든 Windows PowerShell 모듈 및 스냅인과 함께 Windows PowerShell 세션을
시작하려면 다음 절차를 사용합니다.
-- 작업 표시줄에서 Windows PowerShell 아이콘을 마우스 오른쪽 단추로 클릭한 다음 "모든 모듈
가져오기"를 클릭합니다.
참고: Windows Server 2008 R2에서 Windows PowerShell 아이콘은 기본적으로 작업 표시줄에 고정되어 있습니다.
그러나 "모든 모듈 가져오기" 작업이 표시되도록 하려면 Windows PowerShell을 한 번 시작해야 합니다.
다른 버전의 Windows에서 사용 가능한 모듈을 모두 현재 세션으로 가져오려면 Windows PowerShell
프롬프트에서 다음을 입력합니다.
get-module -listAvailable | import-module
모듈의 명령을 찾는 방법
모듈을 Windows PowerShell 세션으로 가져온 후에는 모듈에서 해당 명령을 사용할 수 있습니다.
모듈에서 추가한 명령을 찾으려면 Windows PowerShell 프롬프트에서 다음을 입력합니다.
get-command -module <module-name>
예를 들어 BitsTransfer 모듈에서 추가한 명령을 찾으려면 다음을 입력합니다.
get-command -module BitsTransfer
Get-Command cmdlet에 대한 자세한 내용은 Get-Command를 참조하십시오.
모듈의 명령에 대한 도움말을 찾는 방법
모듈에서 내보내는 명령에 대한 도움말 항목이 모듈에 포함되어 있는 경우 Get-Help cmdlet은 도움말 항목을
표시합니다. Windows PowerShell의 도움말 항목에 사용할 동일한 명령 형식을 사용합니다.
모듈의 명령에 대한 도움말을 찾으려면 Windows PowerShell 프롬프트에서 다음을 입력합니다.
get-help <command-name>
자세한 도움말을 보려면 다음을 입력합니다.
get-help <command-name> -detailed
예를 들어 Start-BitsTransfer cmdlet에 대한 자세한 도움말을 찾으려면 다음을 입력합니다.
get-help Start-BitsTransfer -detailed
Get-Help 모듈에 대한 자세한 내용은 Get-Help를 참조하십시오.
모듈을 제거하는 방법
모듈을 제거하면 모듈에서 추가한 명령이 세션에서 삭제됩니다.
세션에서 모듈을 제거하려면 다음 명령 형식을 사용합니다.
remove-module <module-name>
예를 들면 다음 명령은 현재 세션에서 BitsTransfer 모듈을 제거합니다.
remove-module BitsTransfer
모듈을 제거하는 작업은 모듈을 가져오는 작업과 반대입니다. 모듈을 제거해도 설치된 모듈이 제거되지는 않습니다.
Remove-Module cmdlet에 대한 자세한 내용은 Remove-Module을 참조하십시오.
모듈을 모든 세션으로 가져오는 방법
Import-Module 명령은 모듈을 현재 Windows PowerShell 세션으로 가져옵니다. 이 명령은 현재
세션에만 적용됩니다.
시작한 모든Windows PowerShell 세션으로 모듈을 가져오려면 Import-Module 명령을 Windows
PowerShell 프로필에 추가합니다.
프로필에 대한 자세한 내용은 about_Profiles를 참조하십시오.
모듈 위치 및 PSMODULEPATH
Windows PowerShell 모듈에는 시스템용 기본 위치와 현재 사용자용 기본 위치가 있습니다.
시스템: $pshome\Modules
(%windir%\System32\WindowsPowerShell\v1.0\M
odules)
현재 사용자: $home\Documents\WindowsPowerShell\Modules
(%UserProfile%\Documents\WindowsPowerShell\Modules)
- 또는 -
$home\My Documents\WindowsPowerShell\Modules
(%UserProfile%\My Documents\WindowsPowerShell\Modules)
참고: Windows Vista, Windows Server 2008 및 이후 버전의 Windows에서
%Windir%\System32 디렉터리에 파일을 추가하거나 이 디렉터리의 파일을 변경하려면
"관리자로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다.
PSModulePath 환경 변수($env:psmodulepath)의 값을 변경하여 시스템에서 기본 모듈 위치를
변경할 수 있습니다. PSModulePath 환경 변수는 Path 환경 변수에 모델링되고 형식이 같습니다.
기본 모듈 위치를 보려면 다음을 입력합니다.
$env:psmodulepath
기본 모듈 위치를 추가하려면 다음 명령 형식을 사용합니다.
$env:psmodulepath = $env:psmodulepath + ";<path>"
명령에서 세미콜론(;)을 사용하여 목록에서 새 경로와 새 경로 앞의 경로를 구분합니다.
예를 들어 "C:\ps-test\Modules" 디렉터리를 추가하려면 다음을 입력합니다.
$env:psmodulepath + ";c:\ps-test\Modules"
PSModulePath에 경로를 추가하는 경우 Get-Module 및 Import-Module 명령은 이 경로의
모듈을 포함합니다.
설정한 값은 현재 세션에만 적용됩니다. 변경 사항을 유지하려면 명령을 Windows PowerShell 프로필에 추가하거나
제어판에서 시스템 항목을 사용하여 레지스트리의 PSModulePath 환경 변수 값을 변경합니다.
PSModulePath 변수에 대한 자세한 내용은 about_Environment_Variables를 참조하십시오.
모듈 및 이름 충돌
세션에서 이름이 동일한 명령이 있을 경우 이름이 충돌합니다. 모듈의 명령 이름이 세션의 명령이나 항목 이름과 같은
경우 모듈을 가져오면 이름이 충돌합니다.
이름 충돌로 인해 명령이 숨겨지거나 바뀔 수 있습니다
-- 숨겨지는 경우: 명령 이름을 입력했을 때 실행되는 명령이 아닌 경우 명령이 숨겨지지만, 시작된 모듈이나 스냅인의
이름으로 명령 이름 정규화 등의 다른 방식으로 명령을 실행할 수 있습니다.
-- 바뀌는 경우: 한 명령을 이름이 같은 명령으로 덮어썼기 때문에 실행할 수 없는 경우 해당 명령이 바뀝니다. 충돌이
발생한 모듈을 제거하더라도 세션을 다시 시작하지 않으면 바뀐 명령을 실행할 수 없습니다.
Import-Module은 현재 세션에서 명령을 숨기고 바꾸는 명령을 추가할 수 있습니다. 또한 세션의 명령이 모듈에서
추가한 명령을 숨길 수 있습니다.
이름이 충돌하지 않도록 하려면 Import-Command의 Prefix 매개 변수를 사용하여 가져온 명령에 대한 고유한 이름을
만듭니다.
Import-Module의 Alias, Cmdlet, Function 및 Variable 매개 변수를 사용하여
가져오려는 명령만 선택하고 세션에서 이름이 충돌하는 명령은 제외할 수도 있습니다.
명령이 숨겨진 경우에도 명령이 속한 모듈 및 스냅인의 이름으로 명령 이름을 정규화하여 해당 명령을 실행할 수
있습니다.
Windows PowerShell 명령 우선 순위 규칙은 세션에 이름이 동일한 명령이 포함된 경우 실행할 명령을 결정합니다.
예를 들어 세션에 이름이 동일한 함수와 cmdlet이 포함된 경우 기본적으로 함수가 실행됩니다. 세션에 동일한 유형의
같은 이름을 가진 명령이 포함된 경우, 예를 들어 두 개의 cmdlet 이름이 같은 경우에는 기본적으로 최근에 추가한 명령이
실행됩니다.
우선 순위 규칙에 대한 설명 및 숨겨진 명령 실행에 대한 지침은 about_Command_Precedence를 참조하십시오.
모듈 및 스냅인
모듈 및 스냅인으로부터 세션에 명령을 추가할 수 있습니다. 모듈에서는 cmdlet, 공급자 및 함수를 비롯한 모든 유형의
명령과 변수, 별칭 및 Windows PowerShell 드라이브와 같은 항목을 추가할 수 있고, 스냅인에서는
cmdlet과 공급자만 추가할 수 있습니다.
실제로 함수, 별칭, 변수 및 드라이브를 입력하거나 이들을 추가하는 스크립트를 실행하여 세션에 추가할 수 있지만
세션의 모든 cmdlet 및 공급자는 모듈이나 스냅인으로부터 제공됩니다.
세션에서 모듈이나 스냅인을 제거하기 전에 다음 명령을 사용하여 제거할 명령을 결정합니다.
세션에서 cmdlet이 속한 모듈이나 스냅인을 찾으려면 다음 명령 형식을 사용합니다.
get-command <cmdlet-name> | format-list -property verb, noun, pssnapin, module
예를 들어 Get-Date cmdlet이 속한 모듈이나 스냅인을 찾으려면 다음을 입력합니다.
get-command get-date | format-list -property verb, noun, pssnapin, module
Windows PowerShell 스냅인에 대한 자세한 내용은 about_PSSnapins를 참조하십시오.
참고 항목
about_Command_Precedence
about_PSSnapins
Get-Command
Get-Help
Get-Module
Import-Module
Remove-Module