修复用户目录Windows 2012 R2的所有权

时间:2016-12-10 00:33:18

标签: powershell windows-server-2012-r2

我在Unix服务器上有一堆用户目录没有附加到活动目录,但是,几乎所有目录都与AD中的用户名相同。我正在将我的文件服务器迁移到绑定到AD的Windows,但权限不会移动。

我需要做的是以某种方式chowntakeown)该用户文件夹中的所有目录转到其AD用户。在* nix中,我会做这样的事情:

cd /home
find * --max-depth 0 -exec chown -R {} {} \;

但我似乎无法找到任何与PowerShell相关的东西。我得到了90%的方式,但最终会出现无法分配所有权等的错误。这可能是由SeRestorePrivilege等引起的,但设置这些似乎也无济于事。< / p>

有没有人有建议,解决方案等?

1 个答案:

答案 0 :(得分:1)

文件所有权在Windows中与在Linux / Unix中一样重要,因为Windows ACL比传统的Unix权限更加通用。只需将所有权传递给Administrators组,并向SYSTEM,Administrators组及其目录所在的用户授予完全权限,从而替换现有权限。使用takeownicacls即可。

Get-ChildItem 'D:\home' -Directory | ForEach-Object {
  $path = $_.FullName
  $user = $_.Name

  & takeown /f "$path" /r /a
  & icacls "$path" '/grant:r' 'SYSTEM:(OI)(CI)F' 'Administrators:(OI)(CI)F' "DOMAIN\${user}:(OI)(CI)F"
}

根据需要为其他用户/组添加读/写权限。