Import-Module

현재 세션에 모듈을 추가합니다.

Syntax

Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-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]
      [-SkipEditionCheck]
      [-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]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Name] <string[]>
      -UseWindowsPowerShell
      [-Global]
      [-Prefix <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>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-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]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession> 
      [<CommonParameters>]
Import-Module
      [-FullyQualifiedName] <ModuleSpecification[]>
      -UseWindowsPowerShell
      [-Global]
      [-Prefix <string>]
      [-Function <string[]>]
      [-Cmdlet <string[]>]
      [-Variable <string[]>]
      [-Alias <string[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <string>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ModuleInfo] <PSModuleInfo[]>
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]

Description

cmdlet은 Import-Module 현재 세션에 하나 이상의 모듈을 추가합니다. PowerShell 3.0부터 설치된 모듈은 모듈의 명령 또는 공급자를 사용할 때 자동으로 세션으로 가져옵니다. 그러나 이 명령을 사용하여 모듈을 Import-Module 가져올 수 있습니다. 기본 설정 변수를 사용하여 자동 모듈 가져오기를 $PSModuleAutoloadingPreference 사용하지 않도록 설정할 수 있습니다. 변수에 대한 $PSModuleAutoloadingPreference 자세한 내용은 about_Preference_Variables 참조하세요.

모듈은 PowerShell에서 사용할 수 있는 멤버를 포함하는 패키지입니다. 멤버에는 cmdlet, 공급자, 스크립트, 함수, 변수 및 기타 도구 및 파일이 포함됩니다. 모듈을 가져온 후 세션에서 모듈 멤버를 사용할 수 있습니다. 모듈에 대한 자세한 내용은 about_Modules 참조하세요.

기본적으로 Import-Module 모듈에서 내보내는 모든 멤버를 가져오지만 별칭, 함수, Cmdlet변수 매개 변수를 사용하여 가져올 멤버를 제한할 수 있습니다. NoClobber 매개 변수는 Import-Module 현재 세션의 멤버와 이름이 같은 멤버를 가져올 수 없습니다.

Import-Module 는 모듈을 현재 세션으로만 가져옵니다. 모든 새 세션으로 모듈을 가져오려면 PowerShell 프로필에 명령을 추가 Import-Module 합니다. 프로필에 대한 자세한 내용은 about_Profiles 참조하세요.

원격 컴퓨터에서 PSSession을 만들어 PowerShell 원격을 사용하도록 설정한 원격 Windows 컴퓨터를 관리할 수 있습니다. 그런 다음 PSSession 매개 변수 Import-Module 를 사용하여 원격 컴퓨터에 설치된 모듈을 가져옵니다. 현재 세션에서 가져온 명령을 사용하는 경우 명령은 원격 컴퓨터에서 암시적으로 실행됩니다.

Windows PowerShell 3.0부터 CIM(일반 정보 모델) 모듈을 가져오는 데 사용할 Import-Module 수 있습니다. CIM 모듈은 CDXML(Cmdlet 정의 XML) 파일에서 cmdlet을 정의합니다. 이 기능을 사용하면 C++로 작성된 것과 같이 관리되지 않는 코드 어셈블리에서 구현되는 cmdlet을 사용할 수 있습니다.

Windows 운영 체제를 실행하지 않는 컴퓨터를 포함하여 PowerShell 원격을 사용하도록 설정하지 않은 원격 컴퓨터의 경우 CIMSession 매개 변수 Import-Module 를 사용하여 원격 컴퓨터에서 CIM 모듈을 가져올 수 있습니다. 가져온 명령은 원격 컴퓨터에서 암시적으로 실행됩니다. CIMSession은 원격 컴퓨터의 WMI(Windows Management Instrumentation)에 대한 연결입니다.

예제

예제 1: 모듈의 멤버를 현재 세션으로 가져오기

이 예제에서는 PSDiagnostics 모듈의 멤버를 현재 세션으로 가져옵니다.

Import-Module -Name PSDiagnostics

예제 2: 모듈 경로에 지정된 모든 모듈 가져오기

다음은 환경 변수에 지정된 경로에서 사용 가능한 모든 모듈을 $env:PSModulePath 현재 세션으로 가져오는 예제입니다.

Get-Module -ListAvailable | Import-Module

예제 3: 여러 모듈의 멤버를 현재 세션으로 가져오기

이 예제에서는 PSDiagnostics 및 Dism 모듈의 멤버를 현재 세션으로 가져옵니다.

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

cmdlet은 PSDiagnosticsDism 모듈을 가져오고 변수에 개체를 $m 저장 Get-Module 합니다. 아직 세션으로 가져오지 않은 모듈을 가져오는 경우 ListAvailable 매개 변수가 필요합니다.

ModuleInfo 매개 변수 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'.

Verbose 매개 변수 Import-Module사용하면 모듈을 로드할 때 진행률을 보고합니다. Verbose, PassThru 또는 AsCustomObject 매개 변수 Import-Module 가 없으면 모듈을 가져올 때 출력이 생성되지 않습니다.

예제 5: 세션으로 가져온 모듈 멤버 제한

이 예제에서는 세션으로 가져올 모듈 멤버를 제한하는 방법과 이 명령이 세션에 미치는 영향을 보여줍니다. Function 매개 변수는 모듈에서 가져온 멤버를 제한합니다. 별칭, 변수 및 Cmdlet 매개 변수를 사용하여 모듈에서 가져오는 다른 멤버를 제한할 수도 있습니다.

cmdlet은 Get-Module PSDiagnostics 모듈을 나타내는 개체를 가져옵니다. ExportedCmdlets 속성은 모든 cmdlet을 가져오지 않았더라도 모듈에서 내보내는 모든 cmdlet을 나열합니다.

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

cmdlet의 Module 매개 변수를 Get-Command 사용하면 PSDiagnostics 모듈에서 가져온 명령이 표시됩니다. 결과는 및 Enable-PSTrace cmdlet만 Disable-PSTrace 가져온 것을 확인합니다.

예제 6: 모듈의 멤버 가져오기 및 접두사 추가

다음은 PSDiagnostics 모듈을 현재 세션으로 가져오고 멤버 이름에 접두사를 추가한 다음 접두사 멤버 이름을 표시하는 예제입니다. 접두사 매개 변수 Import-Module모듈에서 가져온 모든 멤버에 접두사를 추가 x 합니다. 접두사는 현재 세션의 멤버에만 적용됩니다. 모듈은 변경되지 않습니다. PassThru 매개 변수는 가져온 모듈을 나타내는 모듈 개체를 반환합니다.

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

Get-Command 는 모듈에서 가져온 멤버를 가져옵니다. 출력은 모듈 멤버의 접두사를 올바르게 표시합니다.

예제 7: 사용자 지정 개체 가져오기 및 사용

이 예제에서는 반환된 사용자 지정 개체 Import-Module를 가져와서 사용하는 방법을 보여 줍니다.

사용자 지정 개체에는 가져온 각 모듈 멤버를 나타내는 가상 멤버가 포함됩니다. 예를 들어 모듈의 함수와 cmdlet은 사용자 지정 개체의 스크립트 메서드로 변환됩니다.

사용자 지정 개체는 스크립팅에 유용합니다. 가져온 여러 개체의 이름이 같은 경우에도 유용합니다. 개체의 스크립트 메서드를 사용하는 것은 모듈 이름을 포함하여 가져온 멤버의 정규화된 이름을 지정하는 것과 같습니다.

AsCustomObject 매개 변수는 스크립트 모듈을 가져올 때만 사용할 수 있습니다. 사용 가능한 모듈 중 스크립트 모듈을 결정하는 데 사용합니다 Get-Module .

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"()

Show-Calendar 스크립트 모듈은 AsCustomObject 매개 변수를 사용하여 사용자 지정 개체를 요청하고 PassThru 매개 변수를 사용하여 개체를 반환합니다. 결과 사용자 지정 개체는 변수에 $a 저장됩니다.

변수는 $a 저장된 개체의 Get-Member 속성과 메서드를 표시하기 위해 cmdlet에 파이프됩니다. 출력에 스크립트 메서드가 Show-Calendar 표시됩니다.

스크립트 메서드를 Show-Calendar 호출하려면 이름에 하이픈이 포함되어 있으므로 메서드 이름을 따옴표로 묶어야 합니다.

예제 8: 동일한 세션에 모듈 다시 설치

이 예제에서는 동일한 세션에 모듈을 다시 가져오는 경우의 Import-Module Force 매개 변수를 사용하는 방법을 보여 있습니다. Force 매개 변수는 로드된 모듈을 제거한 다음 다시 가져옵니다.

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

첫 번째 명령은 PSDiagnostics 모듈을 가져옵니다. 두 번째 명령은 이번에는 접두사 매개 변수를 사용하여 모듈을 다시 가져옵니다.

Force 매개 변수가 없으면 세션에는 각 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:28:31 PM

첫 번째 Get-Date cmdlet은 현재 날짜가 있는 DateTime 개체를 반환합니다. TestModule 모듈 Get-Date가져온 후 연도와 일을 반환합니다.

All 매개 변수를 사용하여 세션의 Get-CommandGet-Date 모든 명령을 표시합니다. 결과는 세션에 TestModule 모듈의 함수와 Microsoft.PowerShell.Utility 모듈의 cmdlet이라는 두 가지 Get-Date 명령이 있음을 보여 줍니다.

함수가 cmdlet Get-Date 보다 우선하기 때문에 TestModule 모듈의 Get-Date 함수는 cmdlet 대신 실행됩니다. 원래 버전을 Get-Date실행하려면 명령 이름을 모듈 이름으로 한정해야 합니다.

PowerShell의 명령 우선 순위에 대한 자세한 내용은 about_Command_Precedence 참조하세요.

예제 10: 모듈의 최소 버전 가져오기

다음은 PowerShellGet 모듈을 가져오는 예제입니다 . MinimumVersion 매개 변수 Import-Module 를 사용하여 모듈 버전 2.0.0 이상만 가져옵니다.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

RequiredVersion 매개 변수를 사용하여 특정 버전의 모듈을 가져오거나 키워드(keyword) 모듈버전 매개 변수 #Requires 를 사용하여 스크립트에서 특정 버전의 모듈을 요구할 수도 있습니다.

예제 11: 정규화된 이름을 사용하여 가져오기

이 예제에서는 FullyQualifiedName을 사용하여 특정 버전의 모듈을 가져옵니다.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version

Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1

PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }

예제 12: 정규화된 경로를 사용하여 가져오기

이 예제에서는 정규화된 경로를 사용하여 특정 버전의 모듈을 가져옵니다.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path

Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1

PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'

예제 13: 원격 컴퓨터에서 모듈 가져오기

이 예제에서는 cmdlet을 Import-Module 사용하여 원격 컴퓨터에서 모듈을 가져오는 방법을 보여줍니다. 이 명령은 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 는 컴퓨터에 대한 원격 세션(PSSession)을 Server01 만듭니다. PSSession은 변수에 $s 저장됩니다.

PSSession 매개 변수를 사용하여 실행 Get-Module 하면 NetSecurity 모듈이 설치되고 원격 컴퓨터에서 사용할 수 있음을 보여 줍니다. 이 명령은 cmdlet을 Invoke-Command 사용하여 원격 세션에서 명령을 실행하는 Get-Module 것과 같습니다. 예시:

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

PSSession 매개 변수를 사용하여 실행 Import-Module 하면 NetSecurity 모듈이 원격 컴퓨터에서 현재 세션으로 가져옵니다. cmdlet은 Get-Command NetSecurity 모듈로 시작하고 Get 포함하는 Firewall 명령을 검색합니다. 출력은 모듈과 해당 cmdlet이 현재 세션으로 가져온 것을 확인합니다.

다음으로, cmdlet은 Get-NetFirewallRule 컴퓨터에서 Server01 Windows 원격 관리 방화벽 규칙을 가져옵니다. 이는 cmdlet을 Invoke-Command 사용하여 원격 세션에서 실행하는 Get-NetFirewallRule 것과 같습니다.

예제 14: Windows 운영 체제 없이 원격 컴퓨터의 스토리지 관리

이 예제에서는 컴퓨터 관리자가 모듈 검색 WMI 공급자를 설치했습니다. 이를 통해 공급자를 위해 설계된 CIM 명령을 사용할 수 있습니다.

cmdlet은 New-CimSession RSDGF03 원격 컴퓨터에 세션을 만듭니다. 세션은 원격 컴퓨터의 WMI 서비스에 연결됩니다. CIM 세션은 변수에 $cs 저장됩니다. Import-ModuleCimSession$cs 사용하여 컴퓨터에서 스토리지 CIM 모듈을 RSDGF03 가져옵니다.

이 cmdlet은 Get-Command Storage 모듈의 Get-Disk 명령을 보여 줍니다. CIM 모듈을 로컬 세션으로 가져오면 PowerShell은 각 명령에 대한 CDXML 파일을 PowerShell 스크립트로 변환합니다. 이 파일은 로컬 세션에서 함수로 표시됩니다.

Get-Disk 로컬 세션에 입력되지만 cmdlet은 가져온 원격 컴퓨터에서 암시적으로 실행됩니다. 이 명령은 원격 컴퓨터에서 로컬 세션으로 개체를 반환합니다.

$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이 모듈에서 현재 세션으로 가져오는 별칭을 지정합니다. 쉼표로 구분된 별칭 목록을 입력하세요. 와일드카드 문자를 사용할 수 있습니다.

일부 모듈은 모듈을 가져올 때 선택한 별칭을 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보낸 별칭 중에서 선택할 수 있습니다.

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

-ArgumentList

명령 중에 스크립트 모듈에 전달되는 인수 또는 매개 변수 값의 배열을 Import-Module 지정합니다. 이 매개 변수는 스크립트 모듈을 가져오는 경우에만 유효합니다.

인수 목록 매개 변수의 별칭인 인수를 참조할 수도 있습니다. ArgumentList동작에 대한 자세한 내용은 about_Splatting 참조하세요.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsCustomObject

이 cmdlet은 가져온 모듈 멤버를 나타내는 멤버가 있는 사용자 지정 개체를 반환합니다. 이 매개 변수는 스크립트 모듈에만 유효합니다.

AsCustomObject 매개 변수 Import-Module 를 사용하는 경우 모듈 멤버를 세션으로 가져온 다음 PSModuleInfo 개체 대신 PSCustomObject 개체를 반환합니다. 사용자 지정 개체를 변수에 저장하고 멤버 액세스 열거형을 사용하여 멤버를 호출할 수 있습니다.

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

-Assembly

어셈블리 개체의 배열을 지정합니다. 이 cmdlet은 지정된 어셈블리 개체에 구현된 cmdlet 및 공급자를 가져옵니다. 어셈블리 개체를 포함하는 변수 또는 어셈블리 개체를 만드는 명령을 입력합니다. 어셈블리 개체를 .에 파이프할 Import-Module수도 있습니다.

이 매개 변수를 사용하는 경우 지정된 어셈블리에 의해 구현된 cmdlet 및 공급자만 가져옵니다. 모듈에 다른 파일이 포함되어 있으면 가져오지 않으며 모듈의 중요한 멤버가 누락되었을 수 있습니다. 모듈을 디버깅 및 테스트하거나 모듈 작성자가 모듈을 사용하도록 지시받은 경우 이 매개 변수를 사용합니다.

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

-CimNamespace

CIM 모듈을 노출하는 대체 CIM 공급자의 네임스페이스를 지정합니다. 기본값은 모듈 검색 WMI 공급자의 네임스페이스입니다.

이 매개 변수를 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터 및 디바이스에서 CIM 모듈을 가져옵니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

-CimResourceUri

CIM 모듈의 대체 위치를 지정합니다. 기본값은 원격 컴퓨터에서 모듈 검색 WMI 공급자의 리소스 URI입니다.

이 매개 변수를 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터 및 디바이스에서 CIM 모듈을 가져옵니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

-CimSession

원격 컴퓨터에서 CIM 세션을 지정합니다. CIM 세션이 포함된 변수 또는 GET-CimSession 명령과 같이 CIM 세션을 가져오는 명령을 입력합니다.

Import-Module 는 CIM 세션 연결을 사용하여 원격 컴퓨터에서 현재 세션으로 모듈을 가져옵니다. 현재 세션에서 가져온 모듈의 명령을 사용하는 경우 명령은 원격 컴퓨터에서 실행됩니다.

이 매개 변수를 사용하여 Windows 운영 체제를 실행하지 않는 컴퓨터 및 디바이스 및 PowerShell이 있지만 PowerShell 원격을 사용하도록 설정하지 않은 Windows 컴퓨터에서 모듈을 가져올 수 있습니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

-Cmdlet

이 cmdlet이 모듈에서 현재 세션으로 가져오는 cmdlet 배열을 지정합니다. 와일드카드 문자를 사용할 수 있습니다.

일부 모듈은 모듈을 가져올 때 선택한 cmdlet을 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보낸 cmdlet 중에서 선택할 수 있습니다.

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

-DisableNameChecking

이 cmdlet은 이름에 승인되지 않은 동사 또는 금지 문자가 포함된 cmdlet 또는 함수를 가져올 때 경고하는 메시지를 표시하지 않음을 나타냅니다.

기본적으로 가져오는 모듈이 이름에 승인되지 않은 동사가 있는 cmdlet 또는 함수를 내보낼 때 PowerShell은 다음 경고 메시지를 표시합니다.

경고: 일부 가져온 명령 이름에는 승인되지 않은 동사가 포함되어 있어 검색할 수 없게 만들 수 있습니다. 자세한 내용은 Verbose 매개 변수를 사용하거나 Get-Verb을 입력하여 승인된 동사 목록을 확인합니다.

이 메시지는 경고일 뿐입니다. 비준수 명령을 포함하여 전체 모듈을 계속 가져옵니다. 메시지가 모듈 사용자에게 표시되지만 모듈 작성자가 명명 문제를 해결해야 합니다.

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

-Force

이 매개 변수를 사용하면 모듈이 현재 모듈 위에 로드되거나 다시 로드됩니다.

Type:SwitchParameter
Position:Named
Default value:False
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

-Function

이 cmdlet이 모듈에서 현재 세션으로 가져오는 함수 배열을 지정합니다. 와일드카드 문자를 사용할 수 있습니다. 일부 모듈은 모듈을 가져올 때 선택한 함수를 세션으로 자동으로 내보냅니다. 이 매개 변수를 사용하면 내보내는 함수 중에서 선택할 수 있습니다.

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

-Global

이 cmdlet은 세션의 모든 명령에서 사용할 수 있도록 모듈을 전역 세션 상태로 가져옵니다.

기본적으로 명령 프롬프트, Import-Module 스크립트 파일 또는 scriptblock에서 cmdlet을 호출하면 모든 명령이 전역 세션 상태로 가져옵니다.

다른 모듈 Import-Module 에서 호출될 때 cmdlet은 중첩된 모듈의 명령을 포함하여 모듈의 명령을 호출 모듈의 세션 상태로 가져옵니다.

모듈 내에서 호출 Import-Module 하지 않아야 합니다. 대신 대상 모듈을 부모 모듈의 매니페스트에서 중첩된 모듈로 선언합니다. 중첩된 모듈을 선언하면 종속성의 검색 가능성이 향상됩니다.

Global 매개 변수는 Global 값이 있는 Scope 매개 변수와 동일합니다.

모듈에서 내보내는 명령을 제한하려면 스크립트 모듈의 Export-ModuleMember 명령을 사용합니다.

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

-MaximumVersion

최대 버전을 지정합니다. 이 cmdlet은 지정된 값보다 작거나 같은 모듈의 버전만 가져옵니다. 자격이 있는 버전이 Import-Module 없으면 오류를 반환합니다.

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

-MinimumVersion

최소 버전을 지정합니다. 이 cmdlet은 지정된 값보다 크거나 같은 모듈의 버전만 가져옵니다. MinimumVersion 매개 변수 이름 또는 해당 별칭인 Version을 사용합니다. 자격이 있는 버전이 Import-Module 없으면 오류가 발생합니다.

정확한 버전을 지정하려면 RequiredVersion 매개 변수를 사용합니다. #Requires 키워드(keyword) 모듈버전 매개 변수를 사용하여 스크립트에서 특정 버전의 모듈을 요구할 수도 있습니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

-ModuleInfo

가져올 모듈 개체의 배열을 지정합니다. 모듈 개체가 포함된 변수 또는 다음 명령과 같이 모듈 개체를 가져오는 명령을 Get-Module -ListAvailable입력합니다. 모듈 개체를 .에 파이프할 Import-Module수도 있습니다.

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

-Name

가져올 모듈의 이름을 지정합니다. 모듈의 이름 또는 모듈의 파일 이름(예: , .psm1, .dll또는 .ps1 파일)을 .psd1입력합니다. 파일 경로는 선택 사항입니다. 와일드카드 문자는 허용되지 않습니다. 모듈 이름 및 파일 이름을 .에 파이프할 Import-Module수도 있습니다.

경로를 Import-Module 생략하면 환경 변수에 저장된 경로에서 모듈을 $env:PSModulePath 찾습니다.

가능한 경우 모듈 이름만 지정합니다. 파일 이름을 지정하면 해당 파일에 구현된 멤버만 가져옵니다. 모듈에 다른 파일이 포함되어 있으면 가져오지 않으며 모듈의 중요한 멤버가 누락되었을 수 있습니다.

참고 항목

스크립트(.ps1) 파일을 모듈로 가져올 수 있지만 스크립트 파일은 일반적으로 스크립트 모듈 파일(.psm1) 파일처럼 구조화되지 않습니다. 스크립트 파일을 가져오면 모듈로 사용할 수 있다고 보장할 수 없습니다. 자세한 내용은 about_Modules 참조하세요.

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

-NoClobber

현재 세션의 기존 명령과 이름이 같은 명령을 가져오지 못하도록 합니다. 기본적으로 내보 Import-Module 낸 모든 모듈 명령을 가져옵니다.

이름이 같은 명령은 세션에서 명령을 숨기거나 바꿀 수 있습니다. 세션에서 명령 이름 충돌을 방지하려면 접두사 또는 NoClobber 매개 변수를 사용합니다. 이름 충돌 및 명령 우선 순위에 대한 자세한 내용은 about_Modules 및 about_Command_Precedence "모듈 및 이름 충돌"을 참조하세요.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

-PassThru

가져온 모듈을 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet은 출력을 생성하지 않습니다.

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

-Prefix

이 cmdlet이 가져온 모듈 멤버의 이름에 명사에 추가하는 접두사를 지정합니다.

세션에 있는 서로 다른 멤버의 이름이 동일한 경우 발생할 수 있는 이름 충돌을 방지하려면 이 매개 변수를 사용합니다. 이 매개 변수는 모듈을 변경하지 않으며 모듈이 자체 용도로 가져오는 파일에는 영향을 주지 않습니다. 이러한 모듈을 중첩된 모듈이라고 합니다. 이 cmdlet은 현재 세션의 멤버 이름에만 영향을 줍니다.

예를 들어 접두사 UTC를 지정한 다음 cmdlet을 Get-Date 가져오는 경우 cmdlet은 세션에서 원래 cmdlet과 Get-Date 혼동되지 않는 것으로 Get-UTCDate알려져 있습니다.

이 매개 변수의 값은 기본 접두사를 지정하는 모듈의 DefaultCommandPrefix 속성보다 우선합니다.

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

-PSSession

이 cmdlet이 모듈을 현재 세션으로 가져오는 PowerShell PSSession(사용자 관리 세션)을 지정합니다. PSSession 또는 명령과 같은 PSSession가져오는 명령이 포함된 변수를 Get-PSSession 입력합니다.

다른 세션에서 현재 세션으로 모듈을 가져오는 경우 로컬 모듈의 cmdlet을 사용하는 것처럼 현재 세션의 모듈에서 cmdlet을 사용할 수 있습니다. 원격 cmdlet을 사용하는 명령은 원격 세션에서 실행되지만 원격 세부 정보는 PowerShell을 통해 백그라운드에서 관리됩니다.

이 매개 변수는 PowerShell의 암시적 원격 기능을 사용합니다. cmdlet을 Import-PSSession 사용하여 세션에서 특정 모듈을 가져오는 것과 같습니다.

Import-Module 에서는 다른 세션에서 핵심 PowerShell 모듈을 가져올 수 없습니다. 핵심 PowerShell 모듈에는 Microsoft.PowerShell로 시작하는 이름이 있습니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

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

-RequiredVersion

이 cmdlet에서 가져오는 모듈의 버전을 지정합니다. 버전이 설치되어 Import-Module 있지 않으면 오류가 발생합니다.

기본적으로 Import-Module 버전 번호를 검사 않고 모듈을 가져옵니다.

최소 버전을 지정하려면 MinimumVersion 매개 변수를 사용합니다. #Requires 키워드(keyword) 모듈버전 매개 변수를 사용하여 스크립트에서 특정 버전의 모듈을 요구할 수도 있습니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

RequiredVersion을 사용하여 Windows 운영 체제의 기존 릴리스에 포함된 모듈을 가져오는 스크립트는 Windows 운영 체제의 이후 릴리스에서 자동으로 실행되지 않습니다. 이는 Windows 운영 체제의 이후 릴리스에서 PowerShell 모듈 버전 번호가 Windows 운영 체제의 기존 릴리스에서 모듈 버전 번호보다 높기 때문입니다.

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

-Scope

모듈을 가져올 범위를 지정합니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 전역. 세션의 모든 명령에서 사용할 수 있습니다. Global 매개 변수와 동일합니다.
  • 로컬. 현재 범위에서만 사용할 수 있습니다.

기본적으로 명령 프롬프트, Import-Module 스크립트 파일 또는 scriptblock에서 cmdlet을 호출하면 모든 명령이 전역 세션 상태로 가져옵니다. 매개 변수를 -Scope Local 사용하여 모듈 콘텐츠를 스크립트 또는 scriptblock 범위로 가져올 수 있습니다.

다른 모듈 Import-Module 에서 호출될 때 cmdlet은 중첩된 모듈의 명령을 포함하여 모듈의 명령을 호출자의 세션 상태로 가져옵니다. -Scope Global 이 cmdlet이 세션의 모든 명령에서 사용할 수 있도록 모듈을 전역 세션 상태로 가져오도록 지정하거나 -Global 나타냅니다.

Global 매개 변수는 Global 값이 있는 Scope 매개 변수와 동일합니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

Type:String
Accepted values:Local, Global
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipEditionCheck

필드의 검사 건너뜁니다CompatiblePSEditions.

모듈이 매니페스트 필드에 지정 Core 되지 않은 경우 모듈 디렉터리에서 "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules" PowerShell Core로 모듈을 CompatiblePSEditions 로드할 수 있습니다.

다른 경로에서 모듈을 가져올 때 검사 수행되지 않으므로 이 스위치는 아무 작업도 수행하지 않습니다. Linux 및 macOS에서 이 스위치는 아무 작업도 수행하지 않습니다.

자세한 내용은 about_PowerShell_Editions 참조하세요.

Warning

Import-Module -SkipEditionCheck 는 모듈을 가져오지 못할 가능성이 높습니다. 성공하더라도 호환되지 않는 API를 사용하려고 할 때 모듈에서 명령을 호출하면 나중에 실패할 수 있습니다.

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

-UseWindowsPowerShell

Windows PowerShell 호환성 기능을 사용하여 모듈을 로드합니다. 자세한 내용은 about_Windows_PowerShell_Compatibility 참조하세요.

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

-Variable

이 cmdlet이 모듈에서 현재 세션으로 가져오는 변수 배열을 지정합니다. 변수 목록을 입력합니다. 와일드카드 문자를 사용할 수 있습니다.

모듈을 가져올 때 선택된 변수를 해당 세션으로 자동으로 내보내는 모듈도 있습니다. 이 매개 변수를 사용하면 내보낸 변수 중에서 선택할 수 있습니다.

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

입력

String

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

PSModuleInfo

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

Assembly

어셈블리 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

None

기본적으로 이 cmdlet은 출력을 반환하지 않습니다.

PSModuleInfo

PassThru 매개 변수를 지정하면 cmdlet은 가져온 모듈을 나타내는 System.Management.Automation.PSModuleInfo 개체를 생성합니다.

PSCustomObject

AsCustomObjectPassThru 매개 변수를 함께 지정하면 cmdlet은 모듈을 나타내는 PSCustomObject 개체를 생성합니다.

참고

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

  • 모든 플랫폼:

    • ipmo
  • 모듈을 가져오려면 먼저 로컬 컴퓨터에서 모듈에 액세스할 수 있어야 하며 환경 변수에 PSModulePath 포함되어야 합니다. 자세한 내용은 about_Modules 참조하세요.

    PSSessionCIMSession 매개 변수를 사용하여 원격 컴퓨터에 설치된 모듈을 가져올 수도 있습니다. 그러나 이러한 모듈의 cmdlet을 사용하는 명령은 원격 컴퓨터의 원격 세션에서 실행됩니다.

  • 이름이 같고 형식이 같은 멤버를 세션으로 가져오는 경우 PowerShell은 기본적으로 마지막으로 가져온 멤버를 사용합니다. 변수와 별칭이 대체되고 원본에 액세스할 수 없습니다. 함수, cmdlet 및 공급자는 새 멤버에 의해서만 숨깁니다. 명령 이름을 스냅인, 모듈 또는 함수 경로의 이름으로 한정하여 액세스할 수 있습니다.

  • 모듈에서 가져온 명령에 대한 서식 데이터를 업데이트하려면 cmdlet을 Update-FormatData 사용합니다. 모듈의 서식 파일이 변경되면 cmdlet을 Update-FormatData 사용하여 가져온 명령에 대한 서식 데이터를 업데이트합니다. 모듈을 다시 가져올 필요가 없습니다.

  • Windows PowerShell 3.0부터 PowerShell과 함께 설치된 핵심 명령은 모듈에 패키지됩니다. Windows PowerShell 2.0 및 이후 버전의 PowerShell에서 이전 스타일 세션을 만드는 호스트 프로그램에서 핵심 명령은 스냅인(PSSnapins)으로 패키지됩니다. 예외는 항상 스냅인인 Microsoft.PowerShell.Core입니다. 또한 cmdlet에서 시작한 New-PSSession 것과 같은 원격 세션은 핵심 스냅인을 포함하는 이전 스타일의 세션입니다.

    핵심 모듈을 사용하여 최신 스타일 세션을 만드는 CreateDefault2 메서드에 대한 자세한 내용은 CreateDefault2 메서드를 참조하세요.

  • Windows PowerShell 2.0에서는 ExportedCmdlet 및 NestedModules 속성 값과 같은 모듈 개체의 일부 속성 값이 모듈을 가져올 때까지 채워지지 않았습니다.

  • Windows PowerShell 3.0 이상 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을 사용하여 세션을 만듭니다.

  • 기본적으로 Import-Module 하위 범위에서 호출되는 경우에도 전역 범위에서 모듈을 가져옵니다. 최상위 범위와 모든 하위 범위는 모듈의 내보낸 요소에 액세스할 수 있습니다.

    하위 범위 -Scope Local 에서 가져오기를 해당 범위 및 모든 하위 범위로 제한합니다. 그러면 부모 범위에 가져온 멤버가 표시되지 않습니다.

    참고 항목

    Get-Module 는 현재 세션에 로드된 모든 모듈을 표시합니다. 여기에는 하위 범위에 로컬로 로드된 모듈이 포함됩니다. 현재 범위에서 로드되는 멤버를 확인하는 데 사용합니다 Get-Command -Module modulename .

  • Import-Module 는 모듈에서 클래스 및 열거형 정의를 로드하지 않습니다. 스크립트의 using module 시작 부분에 있는 문을 사용합니다. 클래스 및 열거형 정의를 포함하여 모듈을 가져옵니다. 자세한 내용은 about_Using 참조하세요.

  • 스크립트 모듈을 개발하는 동안 코드를 변경한 다음 Force 매개 변수를 사용하여 Import-Module 모듈의 새 버전을 로드하는 것이 일반적입니다. 이는 루트 모듈의 함수 변경에 대해서만 작동합니다. Import-Module 는 중첩된 모듈을 다시 로드하지 않습니다. 또한 업데이트된 클래스 또는 열거형을 로드할 수 있는 방법은 없습니다.

    중첩된 모듈에 정의된 업데이트된 모듈 멤버를 가져오려면 모듈을 Remove-Module제거한 다음 모듈을 다시 가져옵니다.

    문과 함께 using 모듈을 로드한 경우 새 세션을 시작하여 클래스 및 열거형에 대한 업데이트된 정의를 가져와야 합니다. PowerShell에서 정의되고 문으로 using 가져온 클래스 및 열거형은 언로드할 수 없습니다.