현재 Vista 32 비트를 사용하고 있습니다. "Everyone"이라는 Windows 보안 그룹을 추가하고 디렉터리와 모든 하위 디렉터리 및 모든 파일에 대한 모든 권한을 부여하려면 어떻게합니까? 사용할 수있는 PowerShell 스크립트가 있습니까?"Everyone"그룹을 디렉토리에 추가하고 하위 디렉토리 모두
감사합니다.
현재 Vista 32 비트를 사용하고 있습니다. "Everyone"이라는 Windows 보안 그룹을 추가하고 디렉터리와 모든 하위 디렉터리 및 모든 파일에 대한 모든 권한을 부여하려면 어떻게합니까? 사용할 수있는 PowerShell 스크립트가 있습니까?"Everyone"그룹을 디렉토리에 추가하고 하위 디렉토리 모두
감사합니다.
나는 martona의 스 니펫을 확장하여 모든 폴더와 하위 폴더에 대한 액세스 권한을 부여 할 수있었습니다. 내 코드는 다음과 같습니다.
$FilesAndFolders = gci "c:\data" -recurse | % {$_.FullName}
foreach($FileAndFolder in $FilesAndFolders)
{
#using get-item instead because some of the folders have '[' or ']' character and Powershell throws exception trying to do a get-acl or set-acl on them.
$item = gi -literalpath $FileAndFolder
$acl = $item.GetAccessControl()
$permission = "Everyone","FullControl","Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($rule)
$item.SetAccessControl($acl)
}
$acl = Get-Acl c:\mydir
$permission = "Everyone","FullControl","Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($rule)
$acl | Set-Acl c:\mydir
때로는 "기본"PowerShell 방식이 반드시 최선의 방법은 아닙니다. 이런 식으로 나는 여전히 icacls.exe를 사용합니다. 좋은 ol 'exes는 PowerShell에서 꽤 잘 작동한다는 것을 기억하십시오. 당신이 설정하고 실행하고자하는 디렉토리에 그냥 CD를
icacls $pwd /grant "Everyone":(OI)(CI)F
이 모든 사람에게 (권한 상속을 통해) 아래로 현재 디렉토리에 대한 전체 액세스 권한을 제공 할 것입니다. 이것은 dir 구조의 Everyone에 대한 명시적인 거부가없는 한 작동해야합니다.
감사합니다. 잘 작동하고 "Get-Item -LiteralPath"가 UNC 경로에서 작동하는지 궁금해하는 경우 원격 컴퓨터에 사용 권한을 적용 할 수 있습니다. – Patrick