【发布时间】:2020-06-04 16:15:21
【问题描述】:
我在工作中编写了一个 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
任何提示将不胜感激。
【问题讨论】:
-
你是如何定义
$Importedcsv的? -
听起来像是
If的工作。如果用户名有值,请使用它。否则,请尝试电子邮件地址。 -
所以,你知道你需要做什么,你已经把一个脚本放在一起——问题是什么? :)
-
道歉 - 我应该更清楚。 $Importedcsv 定义如下:
$import = $DataSource+"\Disable Users.csv" $Imported_csv = Import-Csv -Path $import我确实相信 If 语句就是答案。但我的 Powershell 经验非常有限,我不完全确定/自信如何正确构建它。
标签: powershell active-directory