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



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

我需要做的是以某种方式chown(takeown)该用户文件夹中的所有目录传递给他们的AD用户。在 *nix 中,我会做这样的事情:

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

但我似乎找不到任何可以做到这一点的PowerShell。我完成了 90% 的路程,但最终出现无法分配所有权等错误。这可能是由于SeRestorePrivilege等原因,但设置这些似乎也无济于事。

有人有建议、解决方案等吗?

文件所有权在Windows中并不像在Linux/Unix中那样重要,因为Windows ACL比传统的Unix权限更通用。只需将所有权传递给管理员组,并向 SYSTEM、管理员组及其所属目录的用户授予完全权限,替换现有权限。使用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"
}

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

最新更新