【问题标题】:Powershell get-acl and set-acl for a whole network device after data migration数据迁移后整个网络设备的powershell get-acl和set-acl
【发布时间】:2020-05-23 23:25:42
【问题描述】:

案例: 我们必须将完整存储迁移到新机器(都是裸机),Windows Server 2008 到 Windows Server 2012,并同时进行跨域迁移。

网络设备 1 在 Y 上安装了旧域管理员:来自旧机器 网络设备 2 在 Z 上安装了新域管理员:在新机器上

我们已经通过 Robocopy 成功复制了所有数据:

ROBOCOPY %SORC% %DEST% /MIR /DCOPY:T /B /R:1 /W:1 /NP /LOG:%LOG%

实际: 现在我们必须再做两个步骤:将旧用户 acl 迁移到复制的文件和文件夹。 我找到了 get-acl 和 set-acl 但有:

get-acl Y:\ | set-acl Z:\

它只对那个文件夹/文件采取行动。例如,如果我运行 get-acl 'Y:\IT\folder' | set-acl 'Z:\IT\folder' 单个文件夹上的 ACL 复制成功。

问题 a)如何将整个网络设备(旧)的每个文件和文件夹的 ACL 复制到新设备上,并在该设备上复制所有文件和 b) 旧机器上的旧管理员因过去安全设置错误而没有所有者权限的文件,该如何处理?

提示:我已经在 Robocopy 和其他 Robocopy 开关上尝试了 /SEC 属性 - 在我们的案例中它不起作用,因为我们必须使用新域管理员在新域存储上运行 PS 脚本 - 在旧存储只是 powershell 版本 1 - 因为它是 2008 年的服务器..

【问题讨论】:

    标签: powershell filesystems acl windows-server


    【解决方案1】:

    可能需要逐个文件进行。您可以通过获取原始驱动器上所有文件夹和文件的完整递归文件列表来执行此操作,然后循环为每个文件夹设置 ACL。比如:

    gci -Recurse Y:\ | % {
        $ThisACL = Get-Acl $_.FullName
        $ThisACL | Set-Acl $_.FullName.Replace('Y:\','Z:\')
    }
    

    当然,这将允许您插入一些“Write-Progress”语句,让它显示在屏幕上,这样您就可以看到它需要多长时间。您可以在它运行时添加很多内容来改善反馈。

    顺便说一句,这是一个完全未经测试的第一次破解问题,所以我会先在一个小子集上尝试这个,然后再在你的实时数据上运行它。 YMMV,不保留任何权利。希望对您有所帮助。

    【讨论】:

    • 您是否有提示记录这些错误而不是将它们打印到控制台?例如,这是一个字体文件 namend apple][.ttf ... 为什么会这样命名...... Get-Acl : Das angegebene Platzhalterzeichenmuster ist ungültig: Apple ][.ttf在 C:\\Rechteuebernehmen.ps1:3 Zeichen:16 + $ThisACL = Get-Acl $_.FullName + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: ( :) [Get-Acl], WildcardPatternException + FullyQualifiedErrorId : RuntimeException,Microsoft.PowerShell.Commands.GetAclCommand
    • 许多特殊字符导致 PowerShell 尝试在路径中进行替换,而方括号过去曾给我带来过问题。 LiteralPath 允许您完全指定路径而无需任何替换。我上面的解决方案是,因为我们单独发送每条路径,您可以更改为Get-Acl -LiteralPath $_.FullName,并且在 Set-Acl 中也是如此。警告:LiteralPath 不接受通配符。看看这个:Why you should always use LiteralPath
    • 至于记录错误,请尝试在代码前使用Start-Transcript TranscriptFileName,在代码后使用Stop-Transcript。您将在 Transcript 文件中获得打印到屏幕上的所有内容。
    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多