PowerShell을 사용하여 폴더에 대한 권한을 재귀적으로 설정

Rohan Timalsina 2023년6월21일
  1. PowerShell을 사용하여 재귀적으로 폴더에 대한 권한 얻기
  2. PowerShell을 사용하여 재귀적으로 폴더에 대한 권한 설정
PowerShell을 사용하여 폴더에 대한 권한을 재귀적으로 설정

ACL(액세스 제어 목록)은 파일 또는 리소스에 액세스하기 위한 사용자 권한 및 사용자 그룹을 나타냅니다. 액세스 제어 항목(ACE)의 정렬된 목록입니다.

ACL의 각 ACE는 허용, 거부 또는 감사되는 액세스 권한을 정의합니다. 개체의 보안 설명자에는 DACL과 SACL이라는 두 가지 유형의 ACL이 있을 수 있습니다.

Windows에서 NTFS 권한으로 작업할 때 폴더에 대한 권한을 재귀적으로 변경해야 할 수 있습니다. GUI는 PowerShell 스크립트보다 시간이 많이 걸리고 복잡합니다.

이 자습서에서는 PowerShell을 사용하여 폴더에 대한 권한을 재귀적으로 설정하는 방법을 알려줍니다.

PowerShell을 사용하여 재귀적으로 폴더에 대한 권한 얻기

PowerShell에서 ACL 권한을 관리하기 위한 주로 Get-AclSet-Acl의 두 가지 cmdlet이 있습니다.

Get-Acl cmdlet은 파일 또는 리소스의 ACL(액세스 제어 목록)이 포함된 보안 설명자를 가져옵니다.

Get-AclC:\New 디렉터리의 보안 설명자를 가져옵니다.

Get-Acl C:\New

출력:

Directory: C:\
Path Owner          Access
---- -----          ------
New  DelftStack\rhntm BUILTIN\Administrators Allow  FullControl...

Get-Acl cmdlet은 모든 디렉터리 및 하위 디렉터리 권한을 반환하지 않습니다. 폴더 권한을 재귀적으로 얻으려면 Get-ChildItem cmdlet을 -Recurse 매개 변수와 함께 사용해야 합니다.

Get-ChildItem "C:\pc" -Recurse | Get-ACL

PowerShell을 사용하여 재귀적으로 폴더에 대한 권한 설정

Set-Acl은 파일 또는 리소스의 보안 설명자를 변경합니다. -AclObject 매개변수의 값으로 제공된 보안 설명자를 적용합니다.

다음 명령은 C:\New 디렉터리의 보안 설명자에서 C:\pc 디렉터리의 보안 설명자로 값을 복사합니다.

$new = Get-Acl -Path "C:\New"
Set-Acl -Path "C:\pc" -AclObject $new

첫 번째 명령은 C:\New 디렉토리의 보안 설명자를 가져와 $new 변수에 저장합니다. 두 번째 명령에서 Set-AclC:\New 디렉토리의 ACL 값을 $new의 값으로 변경합니다.

다음 스크립트는 새 ACL 규칙을 폴더의 기존 권한에 재귀적으로 추가합니다.

$acl = Get-Acl -Path "C:\pc"
$ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ("testuser", "Read", "Allow")
$acl.AddAccessRule($ace)
Set-Acl -Path "C:\pc" -AclObject $acl

첫 번째 명령은 기존 ACL 규칙을 가져옵니다. 두 번째 명령은 적용할 새 FileSystemAccessRule을 생성합니다.

세 번째 명령은 폴더에 대한 기존 권한에 새 ACL 규칙을 추가합니다. 네 번째 명령은 Set-Acl을 사용하여 새 ACL을 폴더에 적용합니다.

다음 명령을 사용하여 모든 사용자의 권한을 볼 수 있습니다.

(Get-ACL -Path "C:\pc").Access | Format-Table IdentityReference,FileSystemRights,AccessControlType

출력:

IdentityReference  FileSystemRights AccessControlType
-----------------  ---------------- -----------------
DelftStack\rhntm          FullControl             Allow
DelftStack\testuser Read, Synchronize             Allow

시스템 관리자는 프로세스를 더 빠르고 쉽게 만들기 위해 스크립트를 사용하여 많은 폴더와 파일에 대한 NTFS 권한을 구성합니다. 이 문서가 PowerShell을 사용하여 재귀적으로 폴더에 대한 권한을 설정하는 방법을 이해하는 데 도움이 되었기를 바랍니다.

PowerShell의 자세한 NTFS 권한 유형은 이 게시물을 참조하세요.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell Folder