다음을 통해 공유


Export-ModuleMember

내보낼 모듈 멤버를 지정합니다.

구문

Export-ModuleMember
      [[-Function] <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [<CommonParameters>]

Description

Export-ModuleMember cmdlet은 스크립트 모듈(.psm1) 파일 또는 New-Module cmdlet을 사용하여 만든 동적 모듈에서 내보낸 모듈 멤버를 지정합니다. 모듈 멤버에는 cmdlet, 함수, 변수 및 별칭이 포함됩니다. 이 cmdlet은 스크립트 모듈 파일 또는 동적 모듈에서만 사용할 수 있습니다.

스크립트 모듈에 Export-ModuleMember 명령이 포함되어 있지 않으면 스크립트 모듈의 함수와 별칭이 내보내지만 변수는 내보내지지 않습니다. 스크립트 모듈에 Export-ModuleMember 명령이 포함된 경우 Export-ModuleMember 명령에 지정된 멤버만 내보냅니다. Export-ModuleMember 사용하여 스크립트 모듈이 다른 모듈에서 가져오는 멤버를 표시하지 않거나 내보낼 수도 있습니다.

Export-ModuleMember 명령은 선택 사항이지만 모범 사례입니다. 명령이 기본값을 확인하더라도 모듈 작성자의 의도를 보여 줍니다.

예제

예제 1: 스크립트 모듈에서 함수 및 별칭 내보내기

Export-ModuleMember -Function * -Alias *

이 명령은 스크립트 모듈에 정의된 모든 함수와 별칭을 내보냅니다.

예제 2: 특정 별칭 및 함수 내보내기

Export-ModuleMember -Function Get-Test, New-Test, Start-Test -Alias gtt, ntt, stt

이 명령은 스크립트 모듈에 정의된 별칭 3개와 함수 3개를 내보냅니다.

이 명령 형식을 사용하여 모듈 멤버의 이름을 지정할 수 있습니다.

예제 3: 멤버 내보내기 없음

Export-ModuleMember

이 명령은 스크립트 모듈에 정의된 멤버를 내보내지 않음을 지정합니다.

이 명령은 모듈 멤버를 내보내는 것을 방지하지만 멤버를 숨기지는 않습니다. 사용자는 모듈 멤버를 읽고 복사하거나 호출 연산자(&)를 사용하여 내보내지 않은 모듈 멤버를 호출할 수 있습니다.

예제 4: 특정 변수 내보내기

Export-ModuleMember -Variable increment

이 명령은 스크립트 모듈에서 $increment 변수만 내보냅니다. 다른 멤버는 내보내지 않습니다.

변수를 내보내려는 경우 모듈에서 함수를 내보내는 것 외에도 Export-ModuleMember 명령에는 모든 함수의 이름과 변수 이름이 포함되어야 합니다.

예제 5: 여러 내보내기 명령

# From TestModule.psm1
Function New-Test
{
    Write-Output 'I am New-Test function'
}
Export-ModuleMember -Function New-Test

function Validate-Test
{
    Write-Output 'I am Validate-Test function'
}
function Start-Test
{
    Write-Output 'I am Start-Test function'
}
Set-Alias stt Start-Test
Export-ModuleMember -Function Start-Test -Alias stt

이러한 명령은 여러 Export-ModuleMember 명령이 스크립트 모듈(.psm1) 파일에서 해석되는 방법을 보여 줍니다.

이러한 명령은 세 개의 함수와 하나의 별칭을 만든 다음 두 개의 함수와 별칭을 내보냅니다.

Export-ModuleMember 명령이 없으면 세 가지 함수와 별칭을 모두 내보냅니다. Export-ModuleMember 명령을 사용하면 New-TestStart-Test 함수와 STT 별칭만 내보냅니다.

예제 6: 동적 모듈에서 멤버 내보내기

New-Module -Script {function SayHello {"Hello!"}; Set-Alias Hi SayHello; Export-ModuleMember -Alias Hi -Function SayHello}

이 명령은 New-Module cmdlet을 사용하여 만든 동적 모듈에서 Export-ModuleMember 사용하는 방법을 보여줍니다.

이 예제에서는 Export-ModuleMember 사용하여 동적 모듈에서 Hi 별칭과 SayHello 함수를 모두 내보냅니다.

예제 7: 단일 명령에서 함수 선언 및 내보내기

# From TestModule.psm1
function Export
{
  param (
    [Parameter(Mandatory=$true)]
    [ValidateSet("function","variable")]
    $Type,
    [Parameter(Mandatory=$true)]
    $Name,
    [Parameter(Mandatory=$true)]
    $Value
    )

    if ($Type -eq "function")
    {
        Set-item "function:script:$Name" $Value
        Export-ModuleMember $Name
    }
    else
    {
    Set-Variable -scope Script $Name $Value
    Export-ModuleMember -variable $Name
    }
}

Export function New-Test {Write-Output 'I am New-Test function'}
function helper {Write-Output 'I am helper function'}

Export variable Interval 0
$Interval = 2

이 예제에는 함수를 선언하거나 변수를 만든 다음 함수 또는 변수에 대한 Export-ModuleMember 명령을 작성하는 Export 함수가 포함되어 있습니다. 이렇게 하면 단일 명령으로 함수 또는 변수를 선언하고 내보낼 수 있습니다.

내보내기 함수를 사용하려면 스크립트 모듈에 포함합니다. 함수를 내보내려면 Function 키워드 앞에 Export 입력합니다.

변수를 내보내려면 다음 형식을 사용하여 변수를 선언하고 해당 값을 설정합니다.

Export variable <variable-name> <value>

예제의 명령은 올바른 형식을 보여 줍니다. 이 예제에서는 New-Test 함수와 $Interval 변수만 내보냅니다.

매개 변수

-Alias

스크립트 모듈 파일에서 내보낼 별칭을 지정합니다. 별칭 이름을 입력합니다. 와일드카드 문자가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:True

-Cmdlet

스크립트 모듈 파일에서 내보내는 cmdlet을 지정합니다. cmdlet 이름을 입력합니다. 와일드카드 문자가 허용됩니다.

스크립트 모듈 파일에서는 cmdlet을 만들 수 없지만 이진 모듈에서 스크립트 모듈로 cmdlet을 가져와서 스크립트 모듈에서 다시 내보낼 수 있습니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:True

-Function

스크립트 모듈 파일에서 내보내는 함수를 지정합니다. 함수 이름을 입력합니다. 와일드카드 문자가 허용됩니다. 함수 이름 문자열을 Export-ModuleMember파이프할 수도 있습니다.

형식:String[]
Position:0
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:True

-Variable

스크립트 모듈 파일에서 내보낼 변수를 지정합니다. 달러 기호 없이 변수 이름을 입력합니다. 와일드카드 문자가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:True

입력

String

함수 이름 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 생성하지 않습니다.

참고

  • 내보낸 멤버 목록에서 멤버를 제외하려면 다른 모든 멤버를 나열하지만 제외하려는 멤버를 생략하는 Export-ModuleMember 명령을 추가합니다.