[英]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.