범위 한정자를 사용하여 변수, 별칭, 함수에 대한 액세스 보호 설정
Windows PowerShell을 변경하고 읽을 수 있는 위치를 제한하여 변수, 별칭, 함수, Windows PowerShell 드라이브에 액세스 보호 기능을 제공합니다. Windows PowerShell 범위를 사용하여 몇 가지 간단한 규칙을 적용하면 변경해서는 안 되는 항목을 실수로 변경하지 않도록 합니다. 범위의 기본 규칙은 다음과 같습니다.
- 명시적으로 비공개로 지정하지 않는 한 범위에 포함된 항목은 해당 항목이 만들어진 범위 및 모든 자식 범위에 표시됩니다. 하나 이상의 범위에서 변수, 별칭, 함수 또는 Windows PowerShell 드라이브를 사용할 수 있습니다.
- 다른 범위를 명시적으로 규정하지 않는 한 범위 내에서 만든 항목은 해당 항목이 만들어진 범위에서만 변경할 수 있습니다.
한 범위 내에서 항목을 만들고 해당 항목의 이름이 다른 범위의 항목과 동일한 경우 원래 항목이 새 항목 아래에 숨겨질 수 있습니다. 그러나 재정의되거나 변경되지는 않습니다.
원격 명령에서 지역 변수를 사용할 수 있지만 변수가 로컬 세션에서 정의되었음을 나타내야 합니다. Windows PowerShell은 원격 명령에 사용되는 변수가 명령이 실행되는 세션에서 정의되어 있다고 가정합니다.
$Using: 범위 한정자
앞에서 설명한 대로 Windows PowerShell 3.0부터 $Using:
범위 한정자를 구현하여 원격 명령에서 지역 변수를 식별할 수 있습니다. 이는 특수 범위 한정자이며 원격 명령에서 지역 변수를 참조하는 가장 간단한 방법입니다. 이 기술은 변수 값을 원격 컴퓨터에 전달하므로 사용 중인 호스트에서 처리가 줄어듭니다. 기본적으로 원격 명령의 변수는 원격 세션에서 정의된다고 가정합니다.
Using의 구문은 $Using:
입니다.
다음 예제에서는 $ps
변수가 로컬 세션에서 만들어지지만 명령이 실행되는 세션에서 사용됩니다.
$Using:
범위 한정자는 $ps
을(를) 지역 변수로 식별합니다.
$ps = "Windows PowerShell"
Invoke-Command -ComputerName LON-DC1 -ScriptBlock {Get-WinEvent -LogName $Using:ps}
다음 예제와 같이 PSSessions에서 $Using:
범위 한정자를 적용할 수도 있습니다.
$s = New-PSSession -ComputerName LON-DC1
$ps = "Windows PowerShell"
Invoke-Command -Sessions $s -ScriptBlock {Get-WinEvent -LogName $Using:ps}