HOWTO · PowerShell

如何在 PowerShell 中检查用户是否存在

本教程演示如何在 PowerShell 中检查用户是否存在。

本页内容

本教程演示了如何在 PowerShell 中检查用户是否存在。

PowerShell 检查用户是否存在

PowerShell 提供了一条基于活动目录的命令,用于检查用户是否存在。要使用此命令,首先需要导入 ActiveDirectory 模块;该命令的语法如下所示。

Get-ADUser

现在请按照以下步骤使用 PowerShell 检查用户是否存在:

  • 首先,我们需要导入 ActiveDirectory 模块。运行以下命令:
    Import-Module ActiveDirectory
    
  • 导入模块后,我们将用户名赋值给一个变量。
  • 然后,我们在 try-catch 块中使用 Get-ADUser 创建用户变量。
  • 最后,我们使用 if-else 条件检查用户变量,以确定它是否为 null 或有某个值。
  • 运行以下命令以完成上述三个步骤:
$UserName = "Sheeraz"
$CheckUser = $(try { Get-ADUser $UserName } catch { $null })
If ($CheckUser -ne $Null) {
    "User exists in the Active Directory"
}
Else {
    "User not found in the Active Directory"
}

上述代码将在活动目录中检查用户,并根据结果打印输出。请查看输出:

User not found in the Active Directory

我们还可以同时检查多个用户。请按照以下步骤检查多个用户是否存在于活动目录中:

  • 首先,创建一个包含所有用户名的用户对象。
  • 然后运行 foreach 循环检查每个用户。
  • 使用 try-catch 块检查每个用户,与上述方法相似。
  • 使用 if-else 条件打印结果。请查看基于这些步骤的命令。
$CheckUsers = @("Sheeraz", "Jhon", "Mike")
foreach ($CheckUser in $CheckUsers) {
    $UserObject = $(try { Get-ADUser $CheckUser } catch { $Null })
    If ($UserObject -ne $Null) {
        Write-Host "The user $CheckUser already exists" -ForegroundColor "green"
    }
    else {
        Write-Host "The user $CheckUser does not exists " -ForegroundColor "red"
    }
}

如果我们有大量用户需要检查怎么办?我们可以使用包含用户的 CSV 文件与 Get-ADUser 命令来检查多个用户。

请按照以下步骤:

  • 首先,创建一个空的结果对象。
  • 导入包含用户名的 CSV。
  • 然后运行 foreach 循环检查每个用户。
  • 使用 try-catch 块检查每个用户,与上述方法相似。
  • 使用 if-else 条件显示结果。请查看基于这些步骤的命令。
$UsersResult = @()
Import-Csv 'C:\Users\Admin\demo.csv' | ForEach-Object {
    $CheckUser = $_."UserName"
    $UserObject = $(try { Get-ADUser $CheckUser } catch { $Null })
    If ($UserObject -ne $Null) {
        $ExistUser = $true
    }
    else {
        $ExistUser = $false
    }
    $UsersResult += New-Object PSObject -Property @{
        UserName  = $CheckUser
        ExistUser = $ExistUser 
    }
}
$UsersResult | select UserName, ExistUser

我们的 CSV 文件包含 20 个不同用户的名字。上述代码将检查每个用户,如果用户存在则打印 true,如果用户不存在则打印 false。

请查看输出:

UserName ExistUser
-------- ---------
             False
             False
             False
             False
             False
             False
             False
             False
             False
             False
             False
             False
             False