繁体   English   中英

Powershell 脚本 - 根据用户名或电子邮件地址从 AD 获取可分辨名称

[英]Powershell script - get Distinguised Name from AD based on either username OR e-mail address

我有一个 Powershell 脚本在工作中根据 CSV 中的给定用户名大规模禁用用户。

本周我被要求做一个批量工作,但只给了电子邮件地址,所以我修改了脚本和 CSV。

我现在想做的是保留 CSV 的标题“用户名”和“电子邮件”,然后让脚本根据给定的值找到可分辨名称。

例如。:

在此处输入图像描述

这是我目前拥有的脚本,它在脚本中包含了两个值(稍微修改了脚本以删除敏感数据)。 该脚本必须在两个不同的服务器上进行搜索,因为我们有跨两个域的用户:

$Imported_csv | ForEach-Object {

$UserDN = $null
$TargetOU = $Null
$Server= $null

# Retrieve Username Address of user.
$User = $_.UserName

# Retrieve E-mail Address of User
$Email = $_.Email

# Retrieve DN of user based on e-mail address
$UserDNxxx  = (Get-ADUser -Server xxx -Filter {mail -eq $Email}).distinguishedName 
$UserDNxxx = (Get-ADUser -Server xxx -Filter {mail -eq $Email}).distinguishedName

# Retrieve DN of user based on Username address
$UserDNxxx  = (Get-ADUser -Server xxx -Identity $_.UserName).distinguishedName
$UserDNxxx  = (Get-ADUser -Server xxx -Identity $_.UserName).distinguishedName

任何提示将非常感谢。

听起来你只需要一个If块:

If ($_.UserName) {
    # Username has a value
    $UserDNxxx  = (Get-ADUser -Server xxx -Identity $_.UserName).distinguishedName
} elseif ($_.Email) {
    # Email has a value
    $UserDNxxx = (Get-ADUser -Server xxx -Filter {mail -eq $_.Email}).distinguishedName
} else {
    # It doesn't have either, so throw an error if you want
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM