about_Requires

간단한 설명

필요한 요소 없이 스크립트가 실행되지 않도록 합니다.

자세한 설명

이 문은 #Requires PowerShell 버전, 모듈(및 버전) 및 버전 필수 구성 요소가 충족되지 않는 한 스크립트가 실행되지 않도록 합니다. 필수 구성 요소가 충족되지 않는 경우 PowerShell은 스크립트를 실행하거나 탭 완성과 같은 다른 런타임 기능을 제공하지 않습니다.

구문

#Requires -Version <N>[.<n>]
#Requires -Modules { <Module-Name> | <Hashtable> }
#Requires -PSEdition <PSEdition-Name>
#Requires -RunAsAdministrator

구문에 대한 자세한 내용은 ScriptRequirements를 참조 하세요.

사용 규칙

스크립트에는 둘 #Requires 이상의 문이 포함될 수 있습니다. 문은 #Requires 스크립트의 모든 줄에 나타날 수 있습니다.

#Requires 함수 내에 문을 배치해도 해당 범위는 제한되지 않습니다. 모든 #Requires 문은 항상 전역적으로 적용되며 스크립트를 실행하기 전에 충족되어야 합니다.

Warning

스크립트의 #Requires 모든 줄에 문이 나타날 수 있지만 스크립트의 위치는 애플리케이션의 시퀀스에 영향을 주지 않습니다. 스크립트를 #Requires 실행하기 전에 문이 제공하는 전역 상태를 충족해야 합니다.

예시:

Get-Module AzureRM.Netcore | Remove-Module
#Requires -Modules AzureRM.Netcore

문 앞에 #Requires 필요한 모듈이 제거되었기 때문에 위의 코드를 실행해서는 안 된다고 생각할 수 있습니다. 그러나 스크립트를 #Requires 실행하기 전에 상태를 충족해야 했습니다. 그런 다음 스크립트의 첫 번째 줄이 필요한 상태를 무효화했습니다.

매개 변수

-어셈블리 어셈 <블리 경로> | <. NET 어셈블리 사양>

Important

구문은 -Assembly 더 이상 사용되지 않습니다. 함수를 제공하지 않습니다. 구문이 PowerShell 5.1에 추가되었지만 지원 코드는 구현되지 않았습니다. 구문은 이전 버전과의 호환성을 위해 계속 허용됩니다.

어셈블리 DLL 파일 또는 .NET 어셈블리 이름의 경로를 지정합니다. 어셈블리 매개 변수는 PowerShell 5.0에서 도입되었습니다. .NET 어셈블리에 대한 자세한 내용은 어셈블리 이름을 참조하세요.

예시:

#Requires -Assembly path\to\foo.dll
#Requires -Assembly "System.Management.Automation, Version=3.0.0.0,
  Culture=neutral, PublicKeyToken=31bf3856ad364e35"

-Version <N>[.<n>]

스크립트에 필요한 PowerShell의 최소 버전을 지정합니다. 주 버전 번호 및 선택적 부 버전 번호를 입력합니다.

예시:

#Requires -Version 6.0

-Modules <Module-Name> | <Hashtable>

스크립트에 필요한 PowerShell 모듈을 지정합니다. 모듈 이름 및 선택적 버전 번호를 입력합니다.

필요한 모듈이 현재 세션에 없으면 PowerShell에서 모듈을 가져옵니다. 모듈을 가져올 수 없는 경우 PowerShell은 종료 오류를 throw합니다.

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

각 모듈에 대해 모듈 이름(<문자열>) 또는 해시 테이블을 입력합니다. 값은 문자열과 해시 테이블의 조합일 수 있습니다. 해시 테이블의 키는 다음과 같습니다.

  • ModuleName - 필수 모듈 이름을 지정합니다.
  • GUID - 선택 사항 모듈의 GUID를 지정합니다.
  • 또한 아래 세 가지 키 중 하나 이상을 지정해야 합니다 .
    • ModuleVersion - 모듈의 허용 가능한 최소 버전을 지정합니다.
    • MaximumVersion - 모듈의 허용되는 최대 버전을 지정합니다.
    • RequiredVersion - 모듈의 정확한 필수 버전을 지정합니다. 다른 버전 키에는 사용할 수 없습니다.

참고 항목

RequiredVersion 가 Windows PowerShell 5.0에 추가되었습니다. MaximumVersion 가 Windows PowerShell 5.1에 추가되었습니다.

예시:

(버전 0.12.0 이상)이 AzureRM.Netcore 설치되어 있어야 합니다.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; ModuleVersion="0.12.0" }

(AzureRM.Netcore버전0.12.0) 설치해야 합니다.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12.0" }

AzureRM.Netcore 버전 0.12.0 이하를 설치해야 합니다.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; MaximumVersion="0.12.0" }

모든 버전 AzureRM.NetcorePowerShellGet 설치되어 있어야 합니다.

#Requires -Modules AzureRM.Netcore, PowerShellGet

키를 사용하는 경우 버전 문자열이 RequiredVersion 필요한 버전 문자열과 정확히 일치하는지 확인합니다.

Get-Module AzureRM.Netcore -ListAvailable
    Directory: /home/azureuser/.local/share/powershell/Modules

ModuleType Version Name            PSEdition ExportedCommands
---------- ------- ----            --------- ----------------
Script     0.12.0  AzureRM.Netcore Core

0.12가 0.12.0과 정확히 일치하지 않으므로 다음 예제는 실패합니다.

#Requires -Modules @{ ModuleName="AzureRM.Netcore"; RequiredVersion="0.12" }

-PSEdition <PSEdition-name>

스크립트에 필요한 PowerShell 버전을 지정합니다. 유효한 값은 PowerShell용 CoreWindows PowerShell용 데스크톱 입니다.

예시:

#Requires -PSEdition Core

-RunAs관리istrator

이 switch 매개 변수가 문에 #Requires 추가되면 스크립트를 실행 중인 PowerShell 세션이 관리자 권한으로 시작되도록 지정합니다. RunAs관리istrator 매개 변수는 Windows가 아닌 운영 체제에서 무시됩니다. RunAs관리istrator 매개 변수는 PowerShell 4.0에서 도입되었습니다.

다음은 그 예입니다.

#Requires -RunAsAdministrator

다음 스크립트에는 두 개의 #Requires 문이 있습니다. 두 문에 지정된 요구 사항이 충족되지 않으면 스크립트가 실행되지 않습니다. 각 #Requires 문은 줄의 첫 번째 항목이어야 합니다.

#Requires -Modules AzureRM.Netcore
#Requires -Version 6.0
Param
(
    [parameter(Mandatory=$true)]
    [String[]]
    $Path
)
...

참고 항목