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