%20SID%EB%A5%BC%20%EA%B8%B0%EC%A1%B4%20SID%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EC%86%94%EB%A3%A8%EC%85%98%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
이전/기타 Windows 설치의 많은 파일에 일반적인 "계정 알 수 없음"이 있으며 어디에나 일반적인 답변이 많이 있습니다. 그러나 나는 일반적인 , 또는 GUI 솔루션을
찾고 있지 않습니다 . 알 수 없는 SID를 알려진 로컬 SID로 변경하고 권한 유형과 상속을 유지하고 싶습니다.takeown
subinacl
xcacls
지금까지 내가 찾고 있는 것과 가장 가까운 유일한 것은 PowerShell 스크립트입니다.http://poshcode.org/2081이를 통해 네트워크 공유에서 알 수 없는 SID를 삭제할 수 있습니다. 여기에는 알 수 없는 SID를 찾기 위한 기본 논리가 포함되어 있지만 개체에서 SID를 대체하는 방법을 아직 찾지 못했지만 FileSystemAccessRule
PowerShell이나 .NET에 능숙하지 않습니다.
내 말이 틀리지 않다면,이 기사MS TechNet에서는 구축이 FileSystemAccessRule
가능하다고 제안하고 있습니다.
이에 대한 더 나은 해결책이 있는지 아는 사람이 있습니까? 이 작업을 위한 애플리케이션, 명령줄 도구 또는 cmdlet이 있을까요?
답변1
Powershell에서는 SDDL 문자열을 조작 Get-Acl
하여 Set-Acl
ACL을 수정할 수 있습니다.
먼저 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