Get-Acl
파일 또는 레지스트리 키와 같은 리소스에 대한 보안 설명자를 가져옵니다.
구문
Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]
설명
Get-Acl cmdlet은 파일 또는 리소스의 보안 설명자를 나타내는 개체를 가져옵니다. 보안 설명자에는 리소스의 ACL(액세스 제어 목록)이 포함되어 있습니다. ACL은 해당 리소스에 액세스해야 하는 사용자와 사용자 그룹의 사용 권한을 지정합니다.
매개 변수
-Audit
SACL(시스템 액세스 제어 목록)에서 보안 설명자의 감사 데이터를 가져옵니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Exclude <string[]>
지정된 항목을 생략합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력하십시오. 와일드카드를 사용할 수 있습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Filter <string>
공급자의 형식 또는 언어에 필터를 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 와일드카드 사용을 포함하여 필터의 구문은 공급자에 따라 다릅니다. 공급자는 개체를 검색한 후에 Windows PowerShell을 통해 해당 개체를 필터링하는 대신 개체를 검색할 때 필터를 적용하기 때문에 필터는 다른 매개 변수보다 훨씬 효율적입니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Include <string[]>
지정된 항목만 검색합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력하십시오. 와일드카드를 사용할 수 있습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Path <string[]>
리소스의 경로를 지정합니다. Get-Acl은 경로에 표시된 리소스의 보안 설명자를 가져옵니다. 와일드카드를 사용할 수 있습니다. Path 매개 변수를 생략할 경우 Get-Acl은 현재 디렉터리의 보안 설명자를 가져옵니다.
매개 변수 이름("Path")은 선택 사항입니다.
필수 여부 |
false |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue, ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-UseTransaction
명령을 활성 트랜잭션에 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions를 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.String 경로가 포함된 문자열을 Get-Acl로 파이프할 수 있습니다. |
출력 |
System.Security.AccessControl Get-Acl은 가져오는 ACL을 나타내는 개체를 반환합니다. 개체 유형은 ACL 유형에 따라 달라집니다. |
참고
기본적으로 Get-Acl은 리소스의 Windows PowerShell 경로(<provider>::<resource-path>), 리소스 소유자 및 "Access"(리소스에 대한 DACL(임의 액세스 제어 목록)의 액세스 제어 항목 목록(배열))를 표시합니다. DACL 목록은 리소스 소유자가 제어합니다.
결과 형식을 목록("get-acl | Format-List")으로 지정한 경우 Windows PowerShell에서는 경로, 소유자 및 액세스 목록 외에 다음 필드를 표시합니다.
-- Group: 소유자의 보안 그룹입니다.
-- Audit: SACL(시스템 액세스 제어 목록)의 항목 목록(배열)입니다. SACL은 Windows에서 감사 레코드를 생성하는 대상 액세스 유형을 지정합니다.
-- Sddl: 리소스의 보안 설명자로, 보안 설명자 정의 언어 형식의 단일 텍스트 문자열로 표시됩니다. Windows PowerShell은 보안 설명자의 GetSddlForm 메서드를 사용하여 이 데이터를 검색합니다.
Get-Acl은 파일 시스템 및 레지스트리 공급자에서 지원되기 때문에 Get-Acl을 사용하여 파일 시스템 개체(예: 파일 및 디렉터리)와 레지스트리 개체(예: 레지스트리 키 및 항목)의 ACL을 볼 수 있습니다.
예 1
C:\PS>get-acl C:\windows
설명
-----------
이 명령은 C:Windows 디렉터리의 보안 설명자를 가져옵니다.
예 2
C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl
설명
-----------
이 명령은 C:\Windows 디렉터리에서 이름이 "k"로 시작하는 모든 .log 파일에 대한 Windows PowerShell 경로 및 SDDL을 가져옵니다.
이 명령은 Get-Acl을 사용하여 각 로그 파일의 보안 설명자를 나타내는 개체를 가져옵니다. 이 명령은 파이프라인 연산자(|)를 사용하여 결과를 Format-List cmdlet으로 보냅니다. 또한 Format-List의 Property 매개 변수를 사용하여 각 보안 설명자 개체의 PsPath 및 SDDL 속성만 표시합니다.
테이블에서는 긴 값이 잘린 상태로 표시되므로 Windows PowerShell에서는 목록이 사용되는 경우가 많습니다.
SDDL 값은 보안 설명자의 모든 정보를 포함하는 단순 텍스트 문자열이기 때문에 시스템 관리자에게 중요합니다. 또한 쉽게 전달 및 저장하고 필요한 경우 구문 분석할 수 있습니다.
예 3
C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }
설명
-----------
이 명령은 C:\Windows 디렉터리에서 이름이 "k"로 시작하는 .log 파일의 보안 설명자를 가져옵니다. 또한 Audit 매개 변수를 사용하여 보안 설명자에서 SACL의 감사 레코드를 검색합니다. 그런 다음 For-EachObject 매개 변수를 사용하여 각 파일과 연결된 감사 레코드 수를 계산합니다. 결과는 각 로그 파일의 감사 레코드 수를 나타내는 숫자 목록으로 표시됩니다.
예 4
C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list
설명
-----------
이 명령은 Get-Acl을 사용하여 레지스트리의 Control 하위 키(HKLM\SYSTEM\CurrentControlSet\Control)에 대한 보안 설명자를 가져옵니다.
Path 매개 변수는 Control 하위 키를 지정합니다. 파이프라인 연산자(|)는 Get-Acl이 검색한 보안 설명자를 Format-List 명령으로 전달합니다. 이 명령은 보안 설명자의 속성 형식을 읽기 쉽도록 목록으로 지정합니다.