이 파일은 저에게 엉망입니다. PowerShell을 사용하여이 작업을 수행하려고 시도하지만 ... 필요하지 않습니다.텍스트 파일의 Re-acl
기본적으로 마이그레이션 된 큰 디렉토리 구조에 대한 ACL 정보가 들어있는 텍스트 파일이 있습니다. 내용에서 바라지 만 더 이상 원래 파일 시스템에 액세스 할 수 없으므로이 파일을 우리가 처리해야합니다.
새로운 (복사 된) 파일 시스템을 다시 acl하기 위해 배치 파일을 생성해야합니다.
그래서 간단히 말해서, 나는이 같은 텍스트 변환해야합니다 (스크롤에 대한 미안하지만 내가 줄 간격 유지하기 위해 노력하고) :
Path: \\Share.Domain.com\Directory01$\Subdirectory01
AccessToString : DOMAIN\Group01-Knuckleheads Allow ReadAndExecute, Synchronize
BUILTIN\Administrators
Path: \\Share.Domain.com\Directory02$\Subdirectory01
AccessToString : DOMAIN\Different-Group02 Allow FullControl
BUILTIN\Administrators Allow FullControl
새 파일로
(또는 동일한 파일을, 아무튼 이 같은 내용에 '문제가 정말 t)이 아웃 작업
ICacls "\\Share.Domain.com\Directory01$\Subdirectory01" /Grant "DOMAIN\Group01-Knuckleheads":(OI)(CI)R,X,S /t /c /l /q /inheritance:r
ICacls "\\Share.Domain.com\Directory01$\Subdirectory01" /Grant "BUILTIN\Administrators":(OI)(CI)F /t /c /l /q /inheritance:r
ICacls "\\Share.Domain.com\Directory02$\Subdirectory01" /Grant "DOMAIN\Different-Group02":(OI)(CI)F /c /l /q /inheritance:r
ICacls "\\Share.Domain.com\Directory02$\Subdirectory01" /Grant "BUILTIN\Administrators":(OI)(CI)F /c /l /q /inheritance:r
내 반 애처로운 시도는 여전히 진행되고 있지만, 나는이 적 내 모조보다 큰 것을 깨닫게 :
#$ACLs = Get-Content C:\Scripts\Test\AndTest.txt
#ForEach-Object ($ACL in $ACLs)
#{
#Figure out how to break strings into variables....
#}
#Declare Var - Need to populate from the imported text file
$FilePath = "\\Share.Domain.com\Directory01$\Subdirectory01"
$GroupName = "DOMAIN\Domain Admins"
$TestPerm = "ReadAndExecute"
If ($TestPerm = "FullControl"){$Perms = "F"}
Elseif ($TestPerm = "ReadAndExecute"){$Perms = "RX"}
Elseif ($TestPerm = "Modify"){$Perms = "M"}
Elseif ($TestPerm = "Deny"){$Perms = "D"}
Elseif ($TestPerm = "Read"){$Perms = "R"}
Elseif ($TestPerm = "Write"){$Perms = "W"}
cls
#Build icacls string -Test Output
Write-Host "ICacls ""$FilePath"" /Grant ""$GroupName"":(OI)(CI)$Perms /t /c /l /q /inheritance:r"
#Write icacls batch file
#Out-File "C:\Scripts\Test\re-acl.cmd" "ICacls ""$FilePath"" /Grant ""$GroupName"":(OI)(CI)$Perms /t /c /l /q /inheritance:r"
여기에 할 일이 많다는 것을 알고 있습니다. & 저는 이것을 알아 내기 시작했습니다. 예를 들어, 배열에 사용 권한을 나열하고 그와 같이 문자열을 작성해야한다고 생각합니다. 또한 특수 사용 권한 등이 있습니다.
하지만 지금은 텍스트 파일을 가져 와서 변수로 분해하는 방법을 알아 내려고합니다 ... 제가 말했던 것처럼 Powershell,하지만 정말 아무것도 될 수 있습니다 ... VB 또는 파이썬 아마?
미리 감사드립니다.
이 작업을 수행하는 더 쉬운 방법이있을 것이라고 생각합니다. GetAccessControls() 메소드를 사용하여 파일에 설정된 액세스 권한을 읽을 수 있습니다. '(ls foo.txt) .GetAccessControl()'과 같이 시도해보십시오. 동시에 두 폴더에 액세스 할 수 있다면 그 방법으로 쉽게 전송할 수 있습니다. 그들을 설정하는'SetAccessControl()'메소드가 있는데, 나는 결코 그것을 사용하지 않는다고 생각했다. – n3wjack
@ n3wjack _but 우리는 더 이상 원래의 파일 시스템에 액세스 할 수 없습니다. _ – Matt
정확히 ...무슨 일이 있었는지, 우리는 이것을 제대로 수행 한 일부 스크립트를 가지고 있었고,이 간단한 스크립트를 작성하여 사람이 읽을 수있는 형식으로 암자를 덤프했습니다. 내 동료 중 한 명이 그것을 사용하라는 요청을 받았지만 실행하지 못했습니다. 원래 ... 나는 컷 오버 후에 만 발견했다 ... –