首页 > 解决方案 > 使用 Powershell 检查所有 AD 用户的主文件夹权限

问题描述

如何通过 Powershell 检查所有 AD 用户的主文件夹权限?

到目前为止,这是我的脚本:

    $MyUser = Get-ADUser -filter 'name -like "*"'

    foreach ($User in $MyUser)

    {

    (Get-ACL -path \\NameOfMyServer\home\$MyUser).access | ft 
    IdentityRerference,FileSystemRights,IsInherited -Auto

    }

我收到一条长长的错误消息(每个用户一条消息),上面写着“ObjectNotFound (:) [Get-ACL] ItemNotFoundException Get-ACL_PathNotFound_Exception,Microsoft,Powershell.Commands.Get-ACLCommand。”

我可以让它工作,但只有当我一次为一个用户运行它时:

    (Get-ACL -path \\NameOfMyServer\home\barry.scott).access | ft 
    IdentityRerference,FileSystemRights,IsInherited -Auto

我也试过这样:

    $MyUser = Get-ADUser -filter 'name -like "$_.GivenName.$_.Surname*"'

    foreach ($User in $MyUser)

    {

    (Get-ACL -path \\NameOfMyServer\home\$MyUser).access | ft 
    IdentityRerference,FileSystemRights,IsInherited -Auto

    }

在这种形式中,我没有得到任何输出,也没有错误。

这是针对 Server 2012 的。有什么想法吗?

我希望这是有道理的-谢谢!

标签: powershellpermissionsactive-directory

解决方案


你目前有

(Get-ACL -path \\NameOfMyServer\home\$MyUser).access 

你可能想要

(Get-ACL -path \\NameOfMyServer\home\$User.SamAccountName).access 

完整示例

$MyUser = Get-ADUser -filter 'name -like "*"'

foreach ($User in $MyUser)
{
(Get-ACL -path \\NameOfMyServer\home\$($User.SamAccountName)).access | ft IdentityReference,FileSystemRights,IsInherited -Auto
}

推荐阅读