当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何检查 UPS 帐户的复制目录更改权限?

作者:精品下载站 日期:2024-12-14 14:10:46 浏览:14 分类:玩电脑

如何检查 UPS 帐户的复制目录更改权限?


SharePoint 中的用户配置文件导入帐户需要复制目录更改权限。而我的另一篇文章如何授予复制目录更改权限?逐步完成授予复制目录权限的步骤,现在的问题是:如何检查特定帐户是否具有复制目录更改权限?

用于检查用户配置文件导入帐户是否具有复制目录更改权限的 PowerShell 脚本:


Import-module activedirectory

$UserProfileAccountName = "Crescent\SP016_UPS"

Function Check-ADUserPermission(
    [System.DirectoryServices.DirectoryEntry]$entry, 
    [string]$user, 
    [string]$permission)
{
    $dse = [ADSI]"LDAP://Rootdse"
    $ext = [ADSI]("LDAP://CN=Extended-Rights," + $dse.ConfigurationNamingContext)

    $right = $ext.psbase.Children | 
        ? { $_.DisplayName -eq $permission }

    if($right -ne $null)
    {
        $perms = $entry.psbase.ObjectSecurity.Access |
            ? { $_.IdentityReference -eq $user } |
            ? { $_.ObjectType -eq [GUID]$right.RightsGuid.Value }

        return ($perms -ne $null)
    }
    else
    {
        Write-Warning "Permission '$permission' not found."
        return $false
    }
}

Function Check-ReplicateChanges([string]$userName)
{
    # Globals
    $replicationPermissionName = "Replicating Directory Changes"

    # Main()
    $dse = [ADSI]"LDAP://Rootdse"

    $entries = @(
        [ADSI]("LDAP://" + $dse.defaultNamingContext),

        [ADSI]("LDAP://" + $dse.configurationNamingContext));
    Write-Host " User '$userName': "

    foreach($entry in $entries)
    {
        $result = Check-ADUserPermission $entry $userName $replicationPermissionName
        if($result)
        {
            Write-Host "   has '$replicationPermissionName' permissions on '$($entry.distinguishedName)'" `
        }
        else
        {
            Write-Host "   does NOT have '$replicationPermissionName' permissions on '$($entry.distinguishedName)'" `
        }
    }
}

Check-ReplicateChanges $UserProfileAccountName

免责声明:我不是这个脚本的作者! ?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯