다음을 통해 공유


Set-Acl

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

구문

Set-Acl
   [-Path] <String[]>
   [-AclObject] <Object>
   [[-CentralAccessPolicy] <String>]
   [-ClearCentralAccessPolicy]
   [-Passthru]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-Acl
   [-InputObject] <PSObject>
   [-AclObject] <Object>
   [-Passthru]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-Acl
   -LiteralPath <String[]>
   [-AclObject] <Object>
   [[-CentralAccessPolicy] <String>]
   [-ClearCentralAccessPolicy]
   [-Passthru]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]

Description

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

Set-Acl사용하려면 Path 또는 InputObject 매개 변수를 사용하여 변경하려는 보안 설명자가 있는 항목을 식별합니다. 그런 다음 AclObject 또는 SecurityDescriptor 매개 변수를 사용하여 적용할 값이 있는 보안 설명자를 제공합니다. Set-Acl 제공된 보안 설명자를 적용합니다. AclObject 매개 변수의 값을 모델로 사용하고 항목의 보안 설명자의 값을 AclObject 매개 변수의 값과 일치하도록 변경합니다.

예제

예제 1: 한 파일에서 다른 파일로 보안 설명자 복사

$DogACL = Get-Acl -Path "C:\Dog.txt"
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: 파이프라인 연산자를 사용하여 설명자 전달

Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"

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

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

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

예제 3: 여러 파일에 보안 설명자 적용

$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "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 매개 변수는 숨겨진 파일을 가져오며, 그렇지 않으면 제외됩니다. (재귀 매개 변수는 파일이 아닌 디렉터리에서 작동하므로 "c:\temp*.txt"을 사용할 수 없습니다.

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

실제로는 둘 이상의 항목에 영향을 줄 수 있는 모든 Set-Acl 명령과 함께 WhatIf 매개 변수를 사용하는 것이 가장 좋습니다. 이 경우 파이프라인의 두 번째 명령은 "Set-Acl -AclObject $NewAcl -WhatIf"입니다. 이 명령은 명령의 영향을 받는 파일을 나열합니다. 결과를 검토한 후 WhatIf 매개 변수 없이 명령을 다시 실행할 수 있습니다.

매개 변수

-AclObject

원하는 속성 값이 있는 ACL을 지정합니다. Set-Acl 지정된 보안 개체의 값과 일치하도록 Path 또는 InputObject 매개 변수로 지정된 항목의 ACL을 변경합니다.

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

형식:Object
Position:1
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-CentralAccessPolicy

항목의 중앙 액세스 정책을 설정하거나 변경합니다. 컴퓨터에 있는 중앙 액세스 정책의 CAP ID 또는 친숙한 이름을 입력합니다.

Windows Server 2012부터 관리자는 Active Directory 및 그룹 정책을 사용하여 사용자 및 그룹에 대한 중앙 액세스 정책을 설정할 수 있습니다. 자세한 내용은 동적 액세스 제어: 시나리오 개요참조하세요.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

형식:String
Position:2
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-ClearCentralAccessPolicy

지정된 항목에서 중앙 액세스 정책을 제거합니다.

Windows Server 2012부터 관리자는 Active Directory 및 그룹 정책을 사용하여 사용자 및 그룹에 대한 중앙 액세스 정책을 설정할 수 있습니다. 자세한 내용은 동적 액세스 제어: 시나리오 개요참조하세요.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Confirm

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

형식:SwitchParameter
별칭:cf
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Exclude

지정된 항목을 생략합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-Filter

공급자의 형식 또는 언어로 필터를 지정합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 와일드카드 사용을 포함하여 필터의 구문은 공급자에 따라 달라집니다. 필터는 검색한 후 PowerShell이 개체를 필터링하지 않고 개체를 검색할 때 적용하기 때문에 다른 매개 변수보다 더 효율적입니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-Include

지정된 항목만 변경합니다. 이 매개 변수의 값은 Path 매개 변수를 한정합니다. 경로 요소 또는 패턴(예: "*.txt")을 입력합니다. 와일드카드가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-InputObject

지정된 개체의 보안 설명자를 변경합니다. 개체 또는 개체를 가져오는 명령이 포함된 변수를 입력합니다.

개체를 Set-Acl파이프할 수 없습니다. 대신 명령에서 InputObject 매개 변수를 명시적으로 사용합니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

형식:PSObject
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-LiteralPath

지정된 항목의 보안 설명자를 변경합니다. Path달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

형식:String[]
별칭:PSPath
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Passthru

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

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Path

지정된 항목의 보안 설명자를 변경합니다. 파일 또는 레지스트리 키의 경로와 같은 항목의 경로를 입력합니다. 와일드카드가 허용됩니다.

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

형식:String[]
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:True

-UseTransaction

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

형식:SwitchParameter
별칭:usetx
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.

형식:SwitchParameter
별칭:wi
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor

ACL 개체 또는 보안 설명자를 파이프하여 Set-Acl수 있습니다.

출력

FileSecurity

기본적으로 Set-Acl 출력을 생성하지 않습니다. 그러나 Passthru 매개 변수를 사용하면 보안 개체가 생성됩니다. 보안 개체의 형식은 항목의 형식에 따라 달라집니다.

참고

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