【问题标题】:change ownership recursive folder powershell更改所有权递归文件夹powershell
【发布时间】:2018-12-03 17:56:23
【问题描述】:

我希望将数千个文件和文件夹的所有权从一个特定用户更改为另一个用户。

在文件夹结构中,大多数文件和文件夹的所有权都需要从 UserA 更改为 UserB,但有一些属于 UserC 的文件我们需要保持不变。

我发现了一个似乎与此相同的问题,但我无法再找到它来参考。它确实给出了以下内容。

$FolderToScan = "G:\Folder\Folder\Folder"
$OldOwner = "Domain\User"
$NewOwner = New-Object System.Security.Principal.NTAccount("Domain","User")

$files = Get-ChildItem -LiteralPath $FolderToScan -Recurse

Foreach ($file in $files)
{
    $f = Get-Item -LiteralPath $file.FullName
    $f = $f.GetAccessControl('Access')
    If ($f.Owner -eq $OldOwner) {
        $f.SetOwner($NewOwner)
        Set-Acl -path $file.FullName -aclObject $f
    }
}

当我使用正确的详细信息代替域/用户运行上述内容时,没有任何反应。

如果有人能指出我正确的方向,那就太好了

【问题讨论】:

  • 我建议将所有权授予管理员组并通过调整 ACL 来处理对文件的访问。

标签: windows powershell ownership


【解决方案1】:

当我尝试代码时,它总是为所有者字段返回任何内容。 在 foreach 循环中尝试这些更改。

这对我有用

Foreach ($file in $files)
{
    Get-Item -LiteralPath $file.fullname
    $f = Get-Item -LiteralPath $file.FullName
    $acl = (get-acl $f)
    $acl.owner
    If ($acl.Owner -eq $OldOwner) {
        $acl.SetOwner($NewOwner)
        Set-Acl -path $file.FullName -aclObject $acl
    }
}

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2013-05-15
    相关资源
    最近更新 更多