심각도 수준: 정보
Description
이 규칙은 명령이 이름 있는 매개변수 대신 세 개 이상의 위치 매개변수로 호출될 경우를 감지합니다. 위치 매개변수를 사용하면 코드 가독성이 떨어지고 오류를 유발할 수 있습니다. 향후 버전의 cmdlet이 매개변수 위치에 의존하는 기존 스크립트를 깨뜨릴 수 있는 방식으로 변경될 가능성도 있습니다.
위치별 매개변수가 몇 개뿐인 단순 cmdlet의 경우 위험이 훨씬 적습니다. 이 규칙이 너무 시끄럽지 않게 하려면 세 가지 이상의 매개변수를 제공하지 마세요. 위치 매개변수 사용 위험이 무시할 수 있는 간단한 예는 다음과 같습니다.Test-Path $Path
명령을 호출할 때는 전체 매개변수 이름을 사용하세요.
Example
비준수
Get-Command ChildItem Microsoft.PowerShell.Management
Compliant
Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management
규칙 구성
Rules = @{
PSAvoidUsingPositionalParameters = @{
CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
Enable = $true
}
}
Parameters
CommandAllowList
이 매개변수는 이 규칙에서 제외할 명령어나 스크립트를 지정합니다. 문자열 배열을 받아들입니다. 기본값은 @()입니다.
사용 가능하게 설정
이 매개변수는 스크립트애널라이더가 이 규칙에 따라 코드를 검사하는지 여부를 제어합니다. 불리언 값을 받아들입니다. 이 규칙을 비활성화하려면 이 매개변수를 로 $false설정하세요. 기본값은 $true입니다.