Import-Module
현재 세션에 모듈을 추가합니다.
구문
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-CimSession <CimSession>
[-CimResourceUri <Uri>]
[-CimNamespace <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Assembly] <Assembly[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ModuleInfo] <PSModuleInfo[]>
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Description
Import-Module
cmdlet은 현재 세션에 하나 이상의 모듈을 추가합니다. 가져오는 모듈은 로컬 컴퓨터 또는 원격 컴퓨터에 설치해야 합니다.
PowerShell 3.0부터 설치된 모듈은 모듈의 명령 또는 공급자를 사용할 때 자동으로 세션으로 가져옵니다. 그러나 Import-Module
명령을 사용하여 모듈을 가져올 수 있으며 $PSModuleAutoloadingPreference
기본 설정 변수를 사용하여 자동 모듈 가져오기를 사용하거나 사용하지 않도록 설정할 수 있습니다. 모듈에 대한 자세한 내용은 about_Modules참조하세요.
$PSModuleAutoloadingPreference
변수에 대한 자세한 내용은 about_Preference_Variables참조하세요.
모듈은 PowerShell에서 사용할 수 있는 멤버를 포함하는 패키지입니다. 멤버에는 cmdlet, 공급자, 스크립트, 함수, 변수 및 기타 도구 및 파일이 포함됩니다. 모듈을 가져온 후 세션에서 모듈 멤버를 사용할 수 있습니다.
모듈을 가져오려면 이름, 어셈블리, ModuleInfo, MinimumVersion 및 RequiredVersion 매개 변수를 사용하여 가져올 모듈을 식별합니다. 기본적으로 Import-Module
모듈에서 내보내는 모든 멤버를 가져오지만 별칭, 함수, Cmdlet및 변수 매개 변수를 사용하여 가져온 멤버를 제한할 수 있습니다.
NoClobber 매개 변수를 사용하여 Import-Module
현재 세션의 멤버와 이름이 같은 멤버를 가져오지 못하도록 할 수도 있습니다.
Import-Module
모듈을 현재 세션으로만 가져옵니다. 모듈을 모든 세션으로 가져오려면 PowerShell 프로필에 Import-Module
명령을 추가합니다. 프로필에 대한 자세한 내용은 about_Profiles참조하세요.
Windows PowerShell 3.0부터 Import-Module
사용하여 cmdlet이 CDXML(Cmdlet 정의 XML) 파일에 정의된 CIM(일반 정보 모델) 모듈을 가져올 수 있습니다. 이 기능을 사용하면 C++로 작성된 것과 같이 관리되지 않는 코드 어셈블리에서 구현되는 cmdlet을 사용할 수 있습니다.
이러한 새로운 기능을 통해 Import-Module
cmdlet은 Windows 운영 체제를 실행하는 컴퓨터와 다른 운영 체제를 실행하는 컴퓨터를 포함하는 다른 유형의 엔터프라이즈를 관리하기 위한 기본 도구가 됩니다.
PowerShell 및 PowerShell 원격을 사용하도록 설정된 Windows 운영 체제를 실행하는 원격 컴퓨터를 관리하려면 원격 컴퓨터에서 PSSession 만든 다음 Get-Module
PSSession 매개 변수를 사용하여 PSSessionPowerShell 모듈을 가져옵니다. 모듈을 가져온 다음 현재 세션에서 가져온 명령을 사용하는 경우 명령은 원격 컴퓨터의 PSSession 암시적으로 실행됩니다. 이 전략을 사용하여 원격 컴퓨터를 관리할 수 있습니다.
비슷한 전략을 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터와 PowerShell 원격을 사용하도록 설정하지 않은 Windows 컴퓨터를 포함하여 PowerShell 원격을 사용하도록 설정하지 않은 컴퓨터를 관리할 수 있습니다.
먼저 원격 컴퓨터에서 원격 컴퓨터의 WMI(Windows Management Instrumentation)에 대한 연결인 CIM 세션을 만듭니다. 그런 다음 Import-Module
CIMSession 매개 변수를 사용하여 원격 컴퓨터에서 CIM 모듈을 가져옵니다. CIM 모듈을 가져온 다음 가져온 명령을 실행하면 명령은 원격 컴퓨터에서 암시적으로 실행됩니다. 이 WMI 및 CIM 전략을 사용하여 원격 컴퓨터를 관리할 수 있습니다.
예제
예제 1: 모듈의 멤버를 현재 세션으로 가져오기
이 예제에서는 PSDiagnostics 모듈의 멤버를 현재 세션으로 가져옵니다. Name 매개 변수 이름은 선택 사항이며 생략할 수 있습니다.
Import-Module -Name PSDiagnostics
기본적으로 Import-Module
모듈을 가져올 때 출력을 생성하지 않습니다. 출력을 요청하려면 PassThru 또는 AsCustomObject 매개 변수 또는 자세한 정보 표시 공통 매개 변수를 사용합니다.
예제 2: 모듈 경로에 지정된 모든 모듈 가져오기
다음은 $env:PSModulePath
환경 변수에 지정된 경로에서 사용 가능한 모든 모듈을 현재 세션으로 가져오는 예제입니다.
Get-Module -ListAvailable | Import-Module
예제 3: 여러 모듈의 멤버를 현재 세션으로 가져오기
이 예제에서는 PSDiagnostics 멤버와 Dism 모듈을 현재 세션으로 가져옵니다.
$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m
Get-Module
cmdlet은 PSDiagnostics 및 Dism 모듈을 가져오고 개체를 $m
변수에 저장합니다. 아직 세션으로 가져오지 않은 모듈을 가져오는 경우 ListAvailable 매개 변수가 필요합니다.
Import-Module
ModuleInfo 매개 변수는 모듈을 현재 세션으로 가져오는 데 사용됩니다.
이러한 명령은 파이프라인 연산자(|
)를 사용하여 Get-Module
명령의 출력을 Import-Module
보내는 것과 같습니다.
예제 4: 경로에 지정된 모든 모듈 가져오기
이 예제에서는 명시적 경로를 사용하여 가져올 모듈을 식별합니다.
Import-Module -Name c:\ps-test\modules\test -Verbose
VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.
자세한 정보 표시 매개 변수를 사용하면 Import-Module
모듈을 로드할 때 진행률을 보고합니다.
자세한 정보 표시, PassThru또는 AsCustomObject 매개 변수가 없으면 Import-Module
모듈을 가져올 때 출력을 생성하지 않습니다.
예제 5: 세션으로 가져온 모듈 멤버 제한
이 예제에서는 세션으로 가져올 모듈 멤버를 제한하는 방법과 이 명령이 세션에 미치는 영향을 보여줍니다.
Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands
Key Value
--- -----
Disable-PSTrace Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace Disable-WSManTrace
Enable-PSTrace Enable-PSTrace
Enable-PSWSManCombinedTrace Enable-PSWSManCombinedTrace
Enable-WSManTrace Enable-WSManTrace
Get-LogProperties Get-LogProperties
Set-LogProperties Set-LogProperties
Start-Trace Start-Trace
Stop-Trace Stop-Trace
Get-Command -Module PSDiagnostics
CommandType Name Version Source
----------- ---- ------- ------
Function Disable-PSTrace 6.1.0.0 PSDiagnostics
Function Enable-PSTrace 6.1.0.0 PSDiagnostics
첫 번째 명령은 PSDiagnostics 모듈에서 Disable-PSTrace
및 Enable-PSTrace
cmdlet만 가져옵니다.
함수 매개 변수는 모듈에서 가져온 멤버를 제한합니다.
별칭, 변수및 Cmdlet 매개 변수를 사용하여 모듈에서 가져오는 다른 멤버를 제한할 수도 있습니다.
Get-Module
cmdlet은 PSDiagnostics 모듈을 나타내는 개체를 가져옵니다.
ExportedCmdlets 속성에는 모듈이 내보내는 모든 cmdlet이 나열됩니다.
세 번째 명령에서 Get-Command
cmdlet의 Module 매개 변수는 PSDiagnostics 모듈에서 가져온 명령을 가져옵니다. 결과는 Disable-PSTrace
및 Enable-PSTrace
cmdlet만 가져온 것을 확인합니다.
예제 6: 모듈의 멤버 가져오기 및 접두사 추가
다음은 PSDiagnostics 모듈을 현재 세션으로 가져오고 멤버 이름에 접두사를 추가한 다음 접두사 멤버 이름을 표시하는 예제입니다. 접두사는 현재 세션의 멤버에만 적용됩니다. 모듈은 변경되지 않습니다.
Import-Module PSDiagnostics -Prefix x -PassThru
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 6.1.0.0 PSDiagnostics {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...
Get-Command -Module PSDiagnostics
CommandType Name Version Source
----------- ---- ------- ------
Function Disable-xPSTrace 6.1.0.0 PSDiagnostics
Function Disable-xPSWSManCombinedTrace 6.1.0.0 PSDiagnostics
Function Disable-xWSManTrace 6.1.0.0 PSDiagnostics
Function Enable-xPSTrace 6.1.0.0 PSDiagnostics
Function Enable-xPSWSManCombinedTrace 6.1.0.0 PSDiagnostics
Function Enable-xWSManTrace 6.1.0.0 PSDiagnostics
Function Get-xLogProperties 6.1.0.0 PSDiagnostics
Function Set-xLogProperties 6.1.0.0 PSDiagnostics
Function Start-xTrace 6.1.0.0 PSDiagnostics
Function Stop-xTrace 6.1.0.0 PSDiagnostics
Import-Module
접두사 매개 변수를 사용하여 모듈에서 가져온 모든 멤버에 x 접두사를 추가하고 PassThru 매개 변수를 사용하여 가져온 모듈을 나타내는 모듈 개체를 반환합니다.
모듈에서 가져온 멤버를 가져오는 Get-Command
cmdlet입니다. 출력은 모듈 멤버의 접두사를 올바르게 표시합니다.
예제 7: 사용자 지정 개체 가져오기 및 사용
이러한 명령은 Import-Module 반환할
사용자 지정 개체에는 가져온 각 모듈 멤버를 나타내는 가상 멤버가 포함됩니다. 예를 들어 모듈의 cmdlet 및 함수는 사용자 지정 개체의 스크립트 메서드로 변환됩니다.
사용자 지정 개체는 스크립팅에 매우 유용합니다. 가져온 여러 개체의 이름이 같은 경우에도 유용합니다. 개체의 스크립트 메서드를 사용하는 것은 모듈 이름을 포함하여 가져온 멤버의 정규화된 이름을 지정하는 것과 같습니다.
AsCustomObject 매개 변수는 스크립트 모듈을 가져올 때만 사용할 수 있으므로 첫 번째 작업은 사용 가능한 모듈 중 스크립트 모듈을 결정하는 것입니다.
Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize
Name ModuleType
---- ----------
Show-Calendar Script
BitsTransfer Manifest
PSDiagnostics Manifest
TestCmdlets Script
$a = Import-Module -Name Show-Calendar -AsCustomObject -Passthru
$a | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();
$a."Show-Calendar"()
첫 번째 명령은 Get-Module
cmdlet을 사용하여 사용 가능한 모듈을 가져옵니다. 이 명령은 파이프라인 연산자를 사용하여 모듈 개체를 Format-Table
cmdlet에 전달합니다. 이 cmdlet에는 테이블에 있는 각 모듈의 Name 및 ModuleType 나열됩니다.
두 번째 명령은 Import-Module
cmdlet을 사용하여 Show-Calendar 스크립트 모듈을 가져옵니다.
이 명령은 AsCustomObject 매개 변수를 사용하여 사용자 지정 개체를 요청하고 PassThru 매개 변수를 사용하여 개체를 반환합니다. 이 명령은 결과 사용자 지정 개체를 $a
변수에 저장합니다.
세 번째 명령은 파이프라인 연산자를 사용하여 $a
PSCustomObject 속성과 메서드를 가져오는 Get-Member
cmdlet에 $a
변수를 보냅니다. 출력에는 Show-Calendar() 스크립트 메서드가 표시됩니다.
마지막 명령은 Show-Calendar 스크립트 메서드를 사용합니다. 메서드 이름은 하이픈을 포함하므로 따옴표로 묶어야 합니다.
예제 8: 동일한 세션으로 모듈 다시 가져오기
이 예제에서는 동일한 세션으로 모듈을 다시 가져올 때 Import-Module
Force 매개 변수를 사용하는 방법을 보여줍니다.
Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS
첫 번째 명령은 PSDiagnostics 모듈을 가져옵니다. 두 번째 명령은 접두사 매개 변수를 사용하여 모듈을 다시 가져옵니다.
Force 매개 변수를 사용하여 Import-Module
모듈을 제거한 다음 다시 가져옵니다. 이 매개 변수가 없으면 세션에는 각 PSDiagnostics cmdlet의 복사본 2개가 포함됩니다. 하나는 표준 이름과 접두사 이름이 있습니다.
예제 9: 가져온 명령으로 숨겨진 명령 실행
이 예제에서는 가져온 명령에 의해 숨겨진 명령을 실행하는 방법을 보여 줍니다.
TestModule 모듈입니다. 에는 연도와 요일을 반환하는 Get-Date
함수가 포함되어 있습니다.
Get-Date
Thursday, August 15, 2019 2:26:12 PM
Import-Module TestModule
Get-Date
19227
Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize
CommandType Name ModuleName
----------- ---- ----------
Function Get-Date TestModule
Cmdlet Get-Date Microsoft.PowerShell.Utility
Microsoft.PowerShell.Utility\Get-Date
Thursday, August 15, 2019 2:26:12 PM
첫 번째 Get-Datecmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,
Get-Date'는 해당 연도와 날짜를 반환합니다.
Get-Command
All 매개 변수를 사용하여 세션에서 모든 Get-Date
명령을 가져옵니다. 결과에는 세션에 두 개의 Get-Date
명령, 즉 TestModule 모듈의 함수와 Microsoft.PowerShell.Utility 모듈의 cmdlet이 있음을 보여 줍니다.
함수가 cmdlet보다 우선하기 때문에 TestModule 모듈의 Get-Date
함수는 Get-Date
cmdlet 대신 실행됩니다. 원래 버전의 Get-Date
실행하려면 명령 이름을 모듈 이름으로 한정해야 합니다.
PowerShell의 명령 우선 순위에 대한 자세한 내용은 about_Command_Precedence참조하세요.
예제 10: 모듈의 최소 버전 가져오기
Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0
이 명령은 PSWorkflow 모듈을 가져옵니다.
Import-Module
MinimumVersion 매개 변수를 사용하여 버전 3.0.0.0 이상만 가져옵니다.
RequiredVersion 매개 변수를 사용하여 특정 버전의 모듈을 가져오거나 #Requires
키워드의 모듈 및 버전 매개 변수를 사용하여 스크립트에서 특정 버전의 모듈을 요구할 수도 있습니다.
예제 11: 원격 컴퓨터에서 모듈 가져오기
이 예제에서는 Import-Module
cmdlet을 사용하여 원격 컴퓨터에서 모듈을 가져오는 방법을 보여줍니다.
이 명령은 PowerShell의 암시적 원격 기능을 사용합니다.
다른 세션에서 모듈을 가져올 때 현재 세션에서 cmdlet을 사용할 수 있습니다. 그러나 cmdlet을 사용하는 명령은 실제로 원격 세션에서 실행됩니다.
$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity
ModuleType Name ExportedCommands
---------- ---- ----------------
Manifest NetSecurity {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...
Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*
CommandType Name ModuleName
----------- ---- ----------
Function Get-NetFirewallAddressFilter NetSecurity
Function Get-NetFirewallApplicationFilter NetSecurity
Function Get-NetFirewallInterfaceFilter NetSecurity
Function Get-NetFirewallInterfaceTypeFilter NetSecurity
Function Get-NetFirewallPortFilter NetSecurity
Function Get-NetFirewallProfile NetSecurity
Function Get-NetFirewallRule NetSecurity
Function Get-NetFirewallSecurityFilter NetSecurity
Function Get-NetFirewallServiceFilter NetSecurity
Function Get-NetFirewallSetting NetSecurity
Get-NetFirewallRule -DisplayName "Windows Remote Management*" | Format-Table -Property DisplayName, Name -AutoSize
DisplayName Name
----------- ----
Windows Remote Management (HTTP-In) WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In) WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP
첫 번째 명령은 New-PSSession
cmdlet을 사용하여 Server01 컴퓨터에 대한 원격 세션(PSSession)을 만듭니다. 이 명령은 $s
변수에 PSSession 저장합니다.
두 번째 명령은 Get-Module
cmdlet의 PSSession 매개 변수를 사용하여 $s
변수의 세션에서 NetSecurity 모듈을 가져옵니다. 이 명령은 Invoke-Command
cmdlet을 사용하여 $s
(Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
)의 세션에서 Get-Module
명령을 실행하는 것과 같습니다. 출력은 NetSecurity 모듈이 컴퓨터에 설치되어 있으며 $s
변수의 세션에서 사용할 수 있음을 보여줍니다.
세 번째 명령은 Import-Module
cmdlet의 PSSession 매개 변수를 사용하여 $s
변수의 세션에서 NetSecurity 모듈을 현재 세션으로 가져옵니다.
네 번째 명령은 Get-Command
cmdlet을 사용하여 가져오기 시작하고 NetSecurity 모듈의 방화벽 포함하는 명령을 가져옵니다. 출력은 명령을 가져오고 모듈과 해당 cmdlet을 현재 세션으로 가져왔음을 확인합니다.
다섯 번째 명령은 Get-NetFirewallRule
cmdlet을 사용하여 Server01 컴퓨터에서 Windows 원격 관리 방화벽 규칙을 가져옵니다. 이 명령은 Invoke-Command
cmdlet을 사용하여 $s
변수의 세션에서 Get-NetFirewallRule
명령을 실행하는 것과 같습니다.
예제 12: Windows 운영 체제 없이 원격 컴퓨터의 스토리지 관리
이 예제에서는 컴퓨터 관리자가 모듈 검색 WMI 공급자를 설치했기 때문에 CIM 명령은 공급자를 위해 설계된 기본값을 사용할 수 있습니다.
이 예제의 명령을 사용하면 Windows 운영 체제를 실행하지 않는 원격 컴퓨터의 스토리지 시스템을 관리할 수 있습니다.
첫 번째 명령은 New-CimSession
cmdlet을 사용하여 RSDGF03 원격 컴퓨터에서 세션을 만듭니다. 세션은 원격 컴퓨터의 WMI에 연결됩니다. 이 명령은 CIM 세션을 $cs
변수에 저장합니다.
두 번째 명령은 $cs
변수의 CIM 세션을 사용하여 RSDGF03 컴퓨터에서 Import-Module
명령을 실행합니다. 이 명령은 Name 매개 변수를 사용하여 Storage CIM 모듈을 지정합니다.
세 번째 명령은 Storage 모듈의 Get-Disk
명령에서 Get-Command
명령을 실행합니다. CIM 모듈을 로컬 세션으로 가져오면 PowerShell은 각 명령에 대한 CDXML 파일을 PowerShell 스크립트로 변환합니다. 이 파일은 로컬 세션에서 함수로 표시됩니다.
네 번째 명령은 Get-Disk
명령을 실행합니다. 명령은 로컬 세션에 입력되지만 가져온 원격 컴퓨터에서 암시적으로 실행됩니다. 이 명령은 원격 컴퓨터에서 개체를 가져오고 로컬 세션으로 반환합니다.
$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into PowerShell scripts.
# These appear as functions in the local session.
Get-Command Get-Disk
CommandType Name ModuleName
----------- ---- ----------
Function Get-Disk Storage
# Use implicit remoting to query disks on the remote computer from which the module was imported.
Get-Disk
Number Friendly Name OperationalStatus Total Size Partition Style
------ ------------- ----------------- ---------- ---------------
0 Virtual HD ATA Device Online 40 GB MBR
매개 변수
-Alias
이 cmdlet이 모듈에서 현재 세션으로 가져오는 별칭을 지정합니다. 쉼표로 구분된 별칭 목록을 입력합니다. 와일드카드 문자가 허용됩니다.
일부 모듈은 모듈을 가져올 때 선택한 별칭을 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보낸 별칭 중에서 선택할 수 있습니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-ArgumentList
Import-Module
명령 중에 스크립트 모듈에 전달되는 인수 또는 매개 변수 값의 배열을 지정합니다. 이 매개 변수는 스크립트 모듈을 가져올 때만 유효합니다.
별칭, 인수별칭으로 ArgumentList 매개 변수를 참조할 수도 있습니다. 자세한 내용은 about_Aliases참조하세요.
형식: | Object[] |
별칭: | Args |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-AsCustomObject
이 cmdlet은 가져온 모듈 멤버를 나타내는 멤버가 있는 사용자 지정 개체를 반환합니다. 이 매개 변수는 스크립트 모듈에만 유효합니다.
AsCustomObject 매개 변수를 사용하는 경우 Import-Module
모듈 멤버를 세션으로 가져온 다음 PSModuleInfo 개체 대신 PSCustomObject 개체를 반환합니다. 사용자 지정 개체를 변수에 저장하고 점 표기법을 사용하여 멤버를 호출할 수 있습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Assembly
어셈블리 개체의 배열을 지정합니다. 이 cmdlet은 지정된 어셈블리 개체에 구현된 cmdlet 및 공급자를 가져옵니다. 어셈블리 개체를 포함하는 변수 또는 어셈블리 개체를 만드는 명령을 입력합니다. 어셈블리 개체를 Import-Module
파이프할 수도 있습니다.
이 매개 변수를 사용하는 경우 지정된 어셈블리에 의해 구현된 cmdlet 및 공급자만 가져옵니다. 모듈에 다른 파일이 포함되어 있으면 가져오지 않으며 모듈의 중요한 멤버가 누락되었을 수 있습니다. 모듈을 디버깅 및 테스트하거나 모듈 작성자가 모듈을 사용하도록 지시받은 경우 이 매개 변수를 사용합니다.
형식: | Assembly[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-CimNamespace
CIM 모듈을 노출하는 대체 CIM 공급자의 네임스페이스를 지정합니다. 기본값은 모듈 검색 WMI 공급자의 네임스페이스입니다.
이 매개 변수를 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터 및 디바이스에서 CIM 모듈을 가져옵니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-CimResourceUri
CIM 모듈의 대체 위치를 지정합니다. 기본값은 원격 컴퓨터에서 모듈 검색 WMI 공급자의 리소스 URI입니다.
이 매개 변수를 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터 및 디바이스에서 CIM 모듈을 가져옵니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | Uri |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-CimSession
원격 컴퓨터에서 CIM 세션을 지정합니다. CIM 세션이 포함된 변수 또는 CIM 세션을 가져오는 명령(예: Get-CimSession 명령)을 입력합니다.
Import-Module
CIM 세션 연결을 사용하여 원격 컴퓨터에서 현재 세션으로 모듈을 가져옵니다. 현재 세션에서 가져온 모듈의 명령을 사용하는 경우 명령은 실제로 원격 컴퓨터에서 실행됩니다.
이 매개 변수를 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터 및 디바이스 및 PowerShell이 있지만 PowerShell 원격을 사용하도록 설정하지 않은 Windows 컴퓨터에서 모듈을 가져올 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | CimSession |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Cmdlet
이 cmdlet이 모듈에서 현재 세션으로 가져오는 cmdlet 배열을 지정합니다. 와일드카드 문자가 허용됩니다.
일부 모듈은 모듈을 가져올 때 선택한 cmdlet을 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보낸 cmdlet 중에서 선택할 수 있습니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-DisableNameChecking
이 cmdlet은 이름에 승인되지 않은 동사 또는 금지 문자가 포함된 cmdlet 또는 함수를 가져올 때 경고하는 메시지를 표시하지 않음을 나타냅니다.
기본적으로 가져오는 모듈이 이름에 승인되지 않은 동사가 있는 cmdlet 또는 함수를 내보낼 때 PowerShell은 다음 경고 메시지를 표시합니다.
경고: 일부 가져온 명령 이름에는 승인되지 않은 동사가 포함되어 있어 검색할 수 없게 만들 수 있습니다. 자세한 내용은 Verbose 매개 변수를 사용하거나 Get-Verb 입력하여 승인된 동사 목록을 확인합니다.
이 메시지는 경고일 뿐입니다. 비준수 명령을 포함하여 전체 모듈을 계속 가져옵니다. 메시지가 모듈 사용자에게 표시되지만 모듈 작성자가 명명 문제를 해결해야 합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Force
이 매개 변수를 사용하면 모듈이 현재 모듈 위에 로드되거나 다시 로드됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-FullyQualifiedName
모듈 사양의 정규화된 이름을 지정합니다.
형식: | ModuleSpecification[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Function
이 cmdlet이 모듈에서 현재 세션으로 가져오는 함수 배열을 지정합니다. 와일드카드 문자가 허용됩니다.
일부 모듈은 모듈을 가져올 때 선택한 함수를 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보낸 함수 중에서 선택할 수 있습니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
-Global
이 cmdlet은 세션의 모든 명령에서 사용할 수 있도록 모듈을 전역 세션 상태로 가져옵니다.
기본적으로 명령 프롬프트, 스크립트 파일 또는 scriptblock에서 Import-Module
cmdlet이 호출되면 모든 명령이 전역 세션 상태로 가져옵니다.
다른 모듈에서 호출될 때 Import-Module
cmdlet은 중첩된 모듈의 명령을 포함하여 모듈의 명령을 호출자의 세션 상태로 가져옵니다.
팁
모듈 내에서 Import-Module
호출하지 않아야 합니다. 대신 대상 모듈을 부모 모듈의 매니페스트에서 중첩된 모듈로 선언합니다. 중첩된 모듈을 선언하면 종속성의 검색 가능성이 향상됩니다.
Global 매개 변수는 값이 Global인 Scope 매개 변수와 동일합니다.
모듈에서 내보내는 명령을 제한하려면 스크립트 모듈에서 Export-ModuleMember
명령을 사용합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-MaximumVersion
최대 버전을 지정합니다. 이 cmdlet은 지정된 값보다 작거나 같은 모듈의 버전만 가져옵니다. 해당 버전이 없으면 Import-Module
오류가 발생합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-MinimumVersion
최소 버전을 지정합니다. 이 cmdlet은 지정된 값보다 크거나 같은 모듈의 버전만 가져옵니다. 해당 버전이 없으면 Import-Module
오류가 발생합니다.
기본적으로 Import-Module
버전 번호를 확인하지 않고 모듈을 가져옵니다.
MinimumVersion 매개 변수 이름 또는 해당 별칭인 Version을 사용합니다.
정확한 버전을 지정하려면 RequiredVersion 매개 변수를 사용합니다. #Requires 키워드의 모듈 및 버전 매개 변수를 사용하여 스크립트에서 특정 버전의 모듈을 요구할 수도 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | Version |
별칭: | Version |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-ModuleInfo
가져올 모듈 개체의 배열을 지정합니다. 모듈 개체가 포함된 변수 또는 모듈 개체를 가져오는 명령(예: Get-Module -ListAvailable
)을 입력합니다. 모듈 개체를 Import-Module
파이프할 수도 있습니다.
형식: | PSModuleInfo[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Name
가져올 모듈의 이름을 지정합니다. 모듈의 이름 또는 모듈의 파일 이름(예: .psd1, .psm1, .dll또는 ps1 파일)을 입력합니다. 파일 경로는 선택 사항입니다. 와일드카드 문자는 허용되지 않습니다. 모듈 이름과 파일 이름을 Import-Module
파이프할 수도 있습니다.
경로를 생략하면 Import-Module
$env:PSModulePath
환경 변수에 저장된 경로에서 모듈을 찾습니다.
가능한 경우 모듈 이름만 지정합니다. 파일 이름을 지정하면 해당 파일에 구현된 멤버만 가져옵니다. 모듈에 다른 파일이 포함되어 있으면 가져오지 않으며 모듈의 중요한 멤버가 누락되었을 수 있습니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
-NoClobber
이 cmdlet은 현재 세션의 기존 명령과 이름이 같은 명령을 가져오지 않음을 나타냅니다. 기본적으로 Import-Module
내보낸 모든 모듈 명령을 가져옵니다.
이름이 같은 명령은 세션에서 명령을 숨기거나 바꿀 수 있습니다. 세션에서 명령 이름 충돌을 방지하려면
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | SwitchParameter |
별칭: | NoOverwrite |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PassThru
작업 중인 항목을 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Prefix
이 cmdlet이 가져온 모듈 멤버의 이름에 명사에 추가하는 접두사를 지정합니다.
세션의 다른 멤버의 이름이 같을 때 발생할 수 있는 이름 충돌을 방지하려면 이 매개 변수를 사용합니다. 이 매개 변수는 모듈을 변경하지 않으며 모듈에서 자체 용도로 가져오는 파일에는 영향을 주지 않습니다. 이러한 모듈을 중첩된 모듈이라고 합니다. 이 cmdlet은 현재 세션의 멤버 이름에만 영향을 줍니다.
예를 들어 접두사 UTC를 지정한 다음 Get-Date
cmdlet을 가져오는 경우 이 cmdlet은 세션에서 Get-UTCDate
알려져 있으며 원래 Get-Date
cmdlet과 혼동되지 않습니다.
이 매개 변수의 값은 기본 접두사를 지정하는 모듈의 DefaultCommandPrefix 속성보다 우선합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-PSSession
이 cmdlet이 모듈을 현재 세션으로 가져오는 PowerShell 사용자 관리 세션(PSSession)을 지정합니다.
PSSession 포함하는 변수 또는 Get-PSSession
명령과 같은 PSSession가져오는 명령을 입력합니다.
다른 세션에서 현재 세션으로 모듈을 가져오는 경우 로컬 모듈의 cmdlet을 사용하는 것처럼 현재 세션의 모듈에서 cmdlet을 사용할 수 있습니다. 원격 cmdlet을 사용하는 명령은 실제로 원격 세션에서 실행되지만 원격 세부 정보는 PowerShell을 통해 백그라운드에서 관리됩니다.
이 매개 변수는 PowerShell의 암시적 원격 기능을 사용합니다.
Import-PSSession
cmdlet을 사용하여 세션에서 특정 모듈을 가져오는 것과 같습니다.
Import-Module
다른 세션에서 PowerShell Core 모듈을 가져올 수 없습니다. PowerShell Core 모듈에는 Microsoft.PowerShell로 시작하는 이름이 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | PSSession |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-RequiredVersion
이 cmdlet에서 가져오는 모듈의 버전을 지정합니다. 버전이 설치되어 있지 않으면 Import-Module
오류가 발생합니다.
기본적으로 Import-Module
버전 번호를 확인하지 않고 모듈을 가져옵니다.
최소 버전을 지정하려면 MinimumVersion 매개 변수를 사용합니다. #Requires 키워드의 모듈 및 버전 매개 변수를 사용하여 스크립트에서 특정 버전의 모듈을 요구할 수도 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
RequiredVersion 사용하여 Windows 운영 체제의 기존 릴리스에 포함된 모듈을 가져오는 스크립트는 Windows 운영 체제의 이후 릴리스에서 자동으로 실행되지 않습니다. 이는 Windows 운영 체제의 이후 릴리스에서 PowerShell 모듈 버전 번호가 Windows 운영 체제의 기존 릴리스에서 모듈 버전 번호보다 높기 때문입니다.
형식: | Version |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Scope
이 cmdlet이 모듈을 가져오는 범위를 지정합니다.
이 매개 변수에 허용되는 값은 다음과 같습니다.
- 전역. 세션의 모든 명령에서 사용할 수 있습니다. Global 매개 변수와 동일합니다.
- 로컬
. 현재 범위에서만 사용할 수 있습니다.
기본적으로 명령 프롬프트, 스크립트 파일 또는 scriptblock에서 Import-Module
cmdlet이 호출되면 모든 명령이 전역 세션 상태로 가져옵니다.
-Scope 매개 변수와 로컬 값을 사용하여 모듈 콘텐츠를 스크립트 또는 scriptblock 범위로 가져올 수 있습니다.
다른 모듈에서 호출될 때 Import-Module
cmdlet은 중첩된 모듈의 명령을 포함하여 모듈의 명령을 호출자의 세션 상태로 가져옵니다.
-Scope Global
또는 -Global
지정하면 이 cmdlet이 모듈을 전역 세션 상태로 가져와 세션의 모든 명령에서 사용할 수 있음을 나타냅니다.
Global 매개 변수는 값이 Global인 Scope 매개 변수와 동일합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | String |
허용되는 값: | Local, Global |
Position: | Named |
Default value: | Current scope |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Variable
이 cmdlet이 모듈에서 현재 세션으로 가져오는 변수 배열을 지정합니다. 변수 목록을 입력합니다. 와일드카드 문자가 허용됩니다.
일부 모듈은 모듈을 가져올 때 선택한 변수를 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보낸 변수 중에서 선택할 수 있습니다.
형식: | String[] |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | True |
입력
System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly
모듈 이름, 모듈 개체 또는 어셈블리 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
None, System.Management.Automation.PSModuleInfo, or System.Management.Automation.PSCustomObject
이 cmdlet은 PSModuleInfo 또는 PSCustomObject반환합니다. 기본적으로 Import-Module
출력을 생성하지 않습니다.
PassThru 매개 변수를 지정하면 cmdlet은 모듈을 나타내는 System.Management.Automation.PSModuleInfo 개체를 생성합니다.
AsCustomObject 매개 변수를 지정하면 PSCustomObject 개체가 생성됩니다.
참고
모듈을 가져오려면 먼저 로컬 컴퓨터에 모듈을 설치해야 합니다. 즉, 모듈 디렉터리를 로컬 컴퓨터에서 액세스할 수 있는 디렉터리에 복사해야 합니다. 자세한 내용은 about_Modules참조하세요.
PSSession 및 CIMSession 매개 변수를 사용하여 원격 컴퓨터에 설치된 모듈을 가져올 수도 있습니다. 그러나 이러한 모듈의 cmdlet을 사용하는 명령은 실제로 원격 컴퓨터의 원격 세션에서 실행됩니다.
이름이 같고 형식이 같은 멤버를 세션으로 가져오는 경우 PowerShell은 기본적으로 마지막으로 가져온 멤버를 사용합니다. 변수와 별칭이 대체되고 원본에 액세스할 수 없습니다. 함수, cmdlet 및 공급자는 새 멤버에 의해서만 숨깁니다. 명령 이름을 스냅인, 모듈 또는 함수 경로의 이름으로 한정하여 액세스할 수 있습니다.
모듈에서 가져온 명령에 대한 서식 데이터를 업데이트하려면
Update-FormatData
cmdlet을 사용합니다.Update-FormatData
모듈에서 가져온 세션의 명령에 대한 서식 지정 데이터도 업데이트합니다. 모듈의 서식 파일이 변경되면Update-FormatData
명령을 실행하여 가져온 명령에 대한 서식 데이터를 업데이트할 수 있습니다. 모듈을 다시 가져올 필요가 없습니다.Windows PowerShell 3.0부터 PowerShell과 함께 설치된 핵심 명령은 모듈에 패키지됩니다. Windows PowerShell 2.0 및 이후 버전의 PowerShell에서 이전 스타일 세션을 만드는 호스트 프로그램에서 핵심 명령은 스냅인(PSSnapins)으로 패키지됩니다. 예외는 항상 스냅인인 Microsoft.PowerShell.Core
. 또한 New-PSSession
cmdlet에서 시작하는 것과 같은 원격 세션은 핵심 스냅인을 포함하는 이전 스타일의 세션입니다.핵심 모듈을 사용하여 최신 스타일의 세션을 만드는 CreateDefault2 메서드에 대한 자세한 내용은 CreateDefault2 메서드참조하세요.
Import-Module
다른 세션에서 PowerShell Core 모듈을 가져올 수 없습니다. PowerShell Core 모듈에는 Microsoft.PowerShell로 시작하는 이름이 있습니다.Windows PowerShell 2.0에서는 ExportedCmdlets 및 NestedModules 속성 값과 같은 모듈 개체의 일부 속성 값은 모듈을 가져와서 PassThru 매개 변수가 반환하는 모듈 개체에서 사용할 수 없을 때까지 채워지지 않았습니다. Windows PowerShell 3.0에서는 모든 모듈 속성 값이 채워집니다.
Windows PowerShell 3.0과 호환되지 않는 혼합 모드 어셈블리가 포함된 모듈을 가져오려고 하면
Import-Module
다음과 같은 오류 메시지를 반환합니다.Import-Module: 혼합 모드 어셈블리는 런타임의 버전 'v2.0.50727'에 대해 빌드되며 추가 구성 정보 없이는 4.0 런타임에 로드할 수 없습니다.
이 오류는 Windows PowerShell 2.0용으로 설계된 모듈에 하나 이상의 혼합 모듈 어셈블리, 즉 C++ 및 C#과 같은 관리 코드와 비관리 코드가 모두 포함된 어셈블리를 포함하는 경우에 발생합니다.
혼합 모드 어셈블리가 포함된 모듈을 가져오려면 다음 명령을 사용하여 Windows PowerShell 2.0을 시작한 다음
Import-Module
명령을 다시 시도합니다.PowerShell.exe -Version 2.0
CIM 세션 기능을 사용하려면 원격 컴퓨터에 ciM(공용 정보 모델) 표준의 Microsoft 구현인 WS-Management 원격 및 WMI(Windows Management Instrumentation)가 있어야 합니다. 또한 컴퓨터에는 모듈 검색 WMI 공급자 또는 동일한 기본 기능이 있는 대체 CIM 공급자가 있어야 합니다.
Windows 운영 체제를 실행하지 않는 컴퓨터와 PowerShell이 있지만 PowerShell 원격을 사용하도록 설정하지 않은 Windows 컴퓨터에서 CIM 세션 기능을 사용할 수 있습니다.
CIM 매개 변수를 사용하여 로컬 컴퓨터를 포함하여 PowerShell 원격을 사용하도록 설정한 컴퓨터에서 CIM 모듈을 가져올 수도 있습니다. 로컬 컴퓨터에서 CIM 세션을 만들 때 PowerShell은 WMI 대신 DCOM을 사용하여 세션을 만듭니다.