Powershell 是否可以检查用户是否有权在不使用try-catch语句的情况下编辑其他用户?

Powershell 是否可以检查用户是否有权在不使用try-catch语句的情况下编辑其他用户?,powershell,active-directory,access-rights,Powershell,Active Directory,Access Rights,我正在PowerShell中编写一个脚本,用于填充Active Directory中的基本信息,例如:电话、办公室位置、经理、昵称和职务。这用于填充office 365中的用户信息,并用于我们大学的电话目录。有时程序能够成功地修改信息,有时则不能 比如说 User1:已成功编辑信息 User2:已成功编辑信息 User3:已成功编辑信息 User4:无法编辑信息 User5:已成功编辑信息 我的程序可以编辑用户1、2、3和5,因为我有这样做的安全许可。我无法更改用户4,因为该用户具有更高的安全许

我正在PowerShell中编写一个脚本,用于填充Active Directory中的基本信息,例如:电话、办公室位置、经理、昵称和职务。这用于填充office 365中的用户信息,并用于我们大学的电话目录。有时程序能够成功地修改信息,有时则不能

比如说

User1:已成功编辑信息

User2:已成功编辑信息

User3:已成功编辑信息

User4:无法编辑信息

User5:已成功编辑信息

我的程序可以编辑用户1、2、3和5,因为我有这样做的安全许可。我无法更改用户4,因为该用户具有更高的安全许可。我目前的解决方案是在try-catch语句周围包装一个
setaduser
,这样就可以解决这个问题

if($user_main.Office -ne $person.'Work Contact  Work Mail Stop')
{
    try
    {
        Write-Host Office location was changed to $person.'Work Contact  Work Mail Stop'
        Set-ADUser $user_main -Office $person.'Work Contact  Work Mail Stop'
        $writer.WriteLine("$timestamp`t$display`t$action`t$outcome`tadd or edit to Office location")
    }
    catch [System.ServiceModel.FaultException]
    {
        $writer.WriteLine("$timestamp`t$display`t$action`t0`tunauthorized add or edit to Office location")
    }
}
是否有办法检查我是否具有正确的安全权限来编辑有关用户(如用户4)的信息,以便不必使用try-catch方法?

如果帐户具有对用户对象的“读取权限”。所以你可以检查ACL。例如,
(获取ACL'AD:\CN=Example,CN=Users,DC=Example,DC=com')。访问
,但这将是一个难题,因为权限将由组委派。如果帐户拥有对用户对象的“读取权限”,则使用
Get EffectiveAccess
命令可以简化此操作。所以你可以检查ACL。例如,
(获取ACL'AD:\CN=Example,CN=Users,DC=Example,DC=com')。访问
,但这将是一个难题,因为权限将由组委派。有一个
Get EffectiveAccess
命令将使这更容易。