다음을 통해 공유


Set-Acl

파일 또는 레지스트리 키와 같은 지정된 리소스의 보안 설명자를 변경합니다.

구문

Set-Acl [-Path] <string[]> [-AclObject] <ObjectSecurity> [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

설명

Set-Acl cmdlet은 사용자가 제공한 보안 설명자와 값이 일치하도록 파일 또는 레지스트리 키와 같은 지정된 리소스의 보안 설명자를 변경합니다.

Set-Acl을 사용하려면 Path 매개 변수를 사용하여 보안 설명자를 변경할 리소스를 식별하고 AclObject 매개 변수를 사용하여 적용할 값이 있는 보안 설명자를 제공합니다. Set-Acl은 AclObject 매개 변수 값을 모델로 사용하고 리소스의 보안 설명자 값을 AclObject 매개 변수의 값과 일치하도록 변경합니다.

매개 변수

-AclObject <ObjectSecurity>

원하는 속성 값이 있는 ACL을 지정합니다. Set-Acl은 Path 매개 변수에 의해 지정된 리소스의 ACL을 지정된 보안 개체의 값과 일치하도록 변경합니다.

Get-Acl 명령의 출력을 변수에 저장한 다음 AclObject 매개 변수를 사용하여 변수를 전달하거나 Get-Acl 명령을 입력할 수 있습니다.

필수 여부

true

위치

2

기본값

파이프라인 입력 적용 여부

true (ByValue)

와일드카드 문자 적용 여부

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

-PassThru

보안 설명자를 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet에서는 출력을 생성하지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Path <string[]>

보안 설명자를 변경할 대상 리소스를 식별합니다. 파일 또는 레지스트리 키 경로와 같은 리소스 경로를 입력하십시오. 와일드카드를 사용할 수 있습니다.

AclObject 매개 변수를 사용하거나 Get-Acl에서 Set-Acl로 개체를 전달하여 보안 개체를 Set-Acl에 전달하고 Path 매개 변수(이름 및 값)를 생략한 경우 Set-Acl은 보안 개체에 포함된 경로를 사용합니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-UseTransaction

명령을 활성 트랜잭션에 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions를 참조하십시오.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.Security.AccessControl.ObjectSecurity

보안 설명자를 Set-Acl로 파이프할 수 있습니다.

출력

없음 또는 보안 개체

기본적으로 Set-Acl은 출력을 생성하지 않습니다. 그러나 -Passthru 매개 변수를 사용하는 경우 보안 개체를 생성합니다. 보안 개체의 유형은 리소스 유형에 따라 다릅니다.

참고

Set-Acl cmdlet은 Windows PowerShell 파일 시스템 및 레지스트리 공급자에서 지원됩니다. 따라서 Set-Acl cmdlet을 사용하여 파일, 디렉터리 및 레지스트리 키의 보안 설명자를 변경할 수 있습니다.

매개 변수에 여러 값을 지정할 때는 쉼표를 사용하여 값을 구분하십시오. 예를 들면 "<parameter-name> <value1>, <value2>"와 같이 구분합니다.

예 1

C:\PS>$DogACL = get-acl c:\dog.txt

C:\PS>set-acl -path C:\cat.txt -AclObject $DogACL

설명
-----------
이들 명령은 Dog.txt 파일의 보안 설명자 값을 Cat.txt 파일의 보안 설명자로 복사합니다. 명령이 완료되면 Dog.txt 파일과 Cat.txt 파일의 보안 설명자가 동일해집니다.

첫 번째 명령은 Get-Acl cmdlet을 사용하여 Dog.txt 파일의 보안 설명자를 가져옵니다. 할당 연산자(=)는 $DogACL 변수 값에 보안 설명자를 저장합니다. 

두 번째 명령은 Set-Acl을 사용하여 Cat.txt의 ACL 값을 $DogACL의 값으로 변경합니다.

Path 매개 변수의 값은 Cat.txt 파일의 경로입니다. AclObject 매개 변수의 값은 모델 ACL(이 예에서는 $DogACL 변수에 저장된 Dog.txt의 ACL)입니다.





예 2

C:\PS>get-acl c:\dog.txt | set-acl -path C:\cat.txt

설명
-----------
이 명령은 파이프라인 연산자를 사용하여 Get-Acl 명령에서 검색된 보안 설명자를 Set-Acl 명령으로 보내는 것을 제외하면 이전 예의 명령과 거의 동일합니다.

첫 번째 명령은 Get-Acl cmdlet을 사용하여 Dog.txt 파일의 보안 설명자를 가져옵니다. 파이프라인 연산자(|)는 Dog.txt 보안 설명자를 나타내는 개체를 Set-Acl 명령으로 전달합니다.

두 번째 명령은 Set-Acl을 사용하여 Dog.txt의 보안 설명자를 Cat.txt에 적용합니다. 명령이 완료되면 Dog.txt 파일과 Cat.txt 파일의 ACL이 동일해집니다.





예 3

C:\PS>$newACL = get-acl file0.txt

C:\PS>get-childitem c:\temp -recurse -include *.txt -force | set-acl -aclobject $newacl

설명
-----------
이들 명령은 File0.txt 파일의 보안 설명자를 C:\Temp 디렉터리 및 해당 하위 디렉터리의 모든 텍스트 파일에 적용합니다.

첫 번째 명령은 현재 디렉터리에서 File0.txt 파일의 보안 설명자를 가져와서 할당 연산자(=)를 사용하여 $newACL 변수에 저장합니다.

파이프라인의 첫 번째 명령은 Get-ChildItem cmdlet을 사용하여 C:\Temp 디렉터리의 모든 텍스트 파일을 가져옵니다. Recurse 매개 변수는 C:\temp의 모든 하위 디렉터리로 명령을 확장합니다. Include 매개 변수는 검색할 파일을 파일 이름 확장명이 ".txt"인 파일로 제한합니다. Force 매개 변수는 제외될 수도 있는 숨겨진 파일을 가져옵니다. 이 경우 Recurse 매개 변수가 파일이 아니라 디렉터리에서 작동하고 있으므로 "c:\temp\*.txt"를 사용할 수 없습니다.

파이프라인 연산자(|)는 검색된 파일을 나타내는 개체를 Set-Acl 명령으로 보냅니다. 이 명령은 AclObject 매개 변수의 보안 설명자를 파이프라인의 모든 파일에 적용합니다.

실제로는 둘 이상의 리소스에 영향을 줄 수 있도록 모든 Set-Acl 명령에서 Whatif 매개 변수를 사용하는 것이 좋습니다. 이 경우 파이프라인의 두 번째 명령은 "set-acl -aclobject $newacl -whatif"입니다. 이 명령은 영향을 받을 수 있는 파일을 나열합니다. 결과를 검토한 후 Whatif 매개 변수 없이 명령을 다시 실행할 수 있습니다.





참고 항목

개념

Get-Acl