これは私を困惑させています。PowerShell でこれを実行しようとしていますが、そうである必要はありません...
基本的に、移行された大規模なディレクトリ構造の 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
次のようなコンテンツを含む新しいファイル(または同じファイル、実際には問題ではありません)に:
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 か Python でしょうか?
よろしくお願いします!