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