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

[玩转系统] 获取 AdUser ErrorAction - 检查 AD 对象是否存在

作者:精品下载站 日期:2024-12-14 16:39:40 浏览:11 分类:玩电脑

获取 AdUser ErrorAction - 检查 AD 对象是否存在


PowerShell 中的 Get-AdUser cmdlet 获取一个或多个 Active Directory 用户。在执行基于 aduser 的操作时,如果 aduser 对象不存在且未正确处理,则可能会抛出 aduser 目录对象未找到异常,并导致脚本终止。

PowerShell 中的 Continue、Ignore、SilentlyContinue、Stop 或 Suspend 等 ErrorAction 参数值决定如何处理非终止错误。

在本文中,我们将讨论如何使用 Get-AdUser ErrorAction 参数检查 Active Directory 用户对象是否存在并处理错误。

获取 AdUser 错误操作

Active Directory 中的 Get-AdUser ErrorAction 参数与 try-catch 块配合得很好。我们将用一个例子来检查它。

如果您在脚本中使用 Get-ADUser ErrorAction 参数(如下所示),它将不起作用

$adUser = 'aronss'
$testuser = Get-ADUser -Identity $adUser -ErrorAction SilentlyContinue

if(!$testuser)
{
           Write-Output -Verbose "User does not exist!"

} 
else
{
      Write-Host 'Get aduser creation date'
      Get-ADUser $adUser -Properties whenCreated | Select Name,whenCreated
}

在上面的 PowerShell 脚本中,

第一个命令获取 aduser 并将其分配给 $testuser 变量。如果 aduser 不存在,ErrorAction 参数将使用 SilentlyContinue 值处理错误。

在第二个命令中,它检查广告用户对象并将输出写入终端。

上述方法的问题是它处理了错误但无法抑制错误消息。

上述命令的输出如下

Get-ADUser : Cannot find an object with identity: 'aronss' under: 'DC=SHELLPRO,DC=LOCAL'.
At line:2 char:13
+ $testuser = Get-ADUser -Identity $adUser -ErrorAction SilentlyContinu ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (aronss:ADUser) [Get-ADUser], ADIdentityNotFoundException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Micros 
   oft.ActiveDirectory.Management.Commands.GetADUser
 
User does not exist!

在上面的输出中,它打印错误消息“找不到 get aduser 目录对象”并打印 User does not Exist!终端上的消息。

使用 try-catch 块效果很好,并且还可以处理错误。

让我们通过使用 try-catch 块来理解上面的示例

$adUser = 'aronss'
try {
      Get-ADUser -Identity $adUser -ErrorAction SilentlyContinue

      Write-Host 'Get aduser creation date'
      Get-ADUser $adUser -Properties whenCreated | Select Name,whenCreated

}
catch {

    Write-Output $_.Exception.Message
}

在上面的 PowerShell 脚本中,

我们已将所有代码放入 try-catch 块中。

在 try 块中,如果引发异常,则会在 catch 块中捕获异常并将输出写入终端。

上述 PowerShell 脚本的输出如下所示

Cannot find an object with identity: 'aronss' under: 'DC=SHELLPRO,DC=LOCAL'.

酷提示:如何修复 Get-AdUser:在 PowerShell 中找不到目录对象!

结论

我希望上面关于如何使用 Get-AdUser ErrorAction 参数检查 aduser 是否存在的文章对您有所帮助。

我们在上面的文章中了解到,使用 try-catch 块非常适合处理未找到 aduser 目录对象之类的错误,并使用 ErrorAction 参数处理它。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

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

取消回复欢迎 发表评论:

关灯