알 수 없는 계정(S-1-5-21-*) SID를 기존 SID로 바꾸는 솔루션이 있습니까?

알 수 없는 계정(S-1-5-21-*) SID를 기존 SID로 바꾸는 솔루션이 있습니까?

이전/기타 Windows 설치의 많은 파일에 일반적인 "계정 알 수 없음"이 있으며 어디에나 일반적인 답변이 많이 있습니다. 그러나 나는 일반적인 , 또는 GUI 솔루션을
찾고 있지 않습니다 . 알 수 없는 SID를 알려진 로컬 SID로 변경하고 권한 유형과 상속을 유지하고 싶습니다.takeownsubinaclxcacls

지금까지 내가 찾고 있는 것과 가장 가까운 유일한 것은 PowerShell 스크립트입니다.http://poshcode.org/2081이를 통해 네트워크 공유에서 알 수 없는 SID를 삭제할 수 있습니다. 여기에는 알 수 없는 SID를 찾기 위한 기본 논리가 포함되어 있지만 개체에서 SID를 대체하는 방법을 아직 찾지 못했지만 FileSystemAccessRulePowerShell이나 .NET에 능숙하지 않습니다.
내 말이 틀리지 않다면,이 기사MS TechNet에서는 구축이 FileSystemAccessRule가능하다고 제안하고 있습니다.

이에 대한 더 나은 해결책이 있는지 아는 사람이 있습니까? 이 작업을 위한 애플리케이션, 명령줄 도구 또는 cmdlet이 있을까요?

답변1

Powershell에서는 SDDL 문자열을 조작 Get-Acl하여 Set-AclACL을 수정할 수 있습니다.

먼저 ACL 개체를 가져옵니다.

$acl = Get-Acl -Path C:\YourFile.txt

이제 SDDL 문자열을 가져옵니다.

$sddl = $acl.sddl

이제 문자열의 SID를 원하는 것으로 바꿀 수 있습니다. 이는 정규식을 사용하여 부분 일치를 업데이트합니다.

$sddl2 = $sddl -replace "S-1-5-21-[0-9-]+", "ExistingSIDHere"

그런 다음 ACL 객체를 업데이트합니다.

$acl.SetSecurityDescriptorSddlForm($sddl2)

그런 다음 객체의 ACL을 설정합니다.

Set-Acl -AclObject $acl -Path C:\YourFile.txt

관련 정보