我有一份 CSV 用户列表,我想检查他们的帐户是否被禁用,脚本工作得很好,但现在我想检查它们是否接近不同的域,而不仅仅是一个域。有简单的方法吗?
代码很简单,现在看起来像这样:
Import-Module ActiveDirectory
$csv = Import-Csv -Path “C:\temp\Users.csv”
# Check for how many users are in CSV the list
$HowManyUsers = (Get-Content C:\temp\Users.csv).Length-1
$Servers = @("D01", "D02", "D03", "D04", "D05")
$Total = 0
Foreach ($user in $csv)
{
$fname = $user.FirstName
$lname = $user.LastName
GET-ADUser -Filter {GivenName -eq $fname -and Surname -eq $lname} -Properties * | Select DisplayName, EmployeeID, Enabled
$Total++
}
我需要再做一次 foreach 还是有更简单的方法?我正在考虑这样做:
GET-ADUser -Filter {GivenName -eq $fname -and Surname -eq $lname} -Server $Servers -Properties * | Select DisplayName, EmployeeID, Enabled
但这行不通。
这是一个更新的脚本示例。 $Total 已填充,因为 powershell 返回任何未捕获的输出(即 Get-ADUser 命令返回结果,而我们没有在变量中捕获,因此返回它)。
Import-Module ActiveDirectory
$csv = Import-Csv -Path “C:\temp\test.csv”
# Check for how many users are in CSV the list
$HowManyUsers = $csv.Count
$Servers = @("DC1", "DC2")
# Iterate CSV
$Total = $csv | %{
$fname=$_.FirstName
$lname=$_.LastName
# Iterate Servers
$Servers | %{
Get-ADUser -Server $_ -Filter 'GivenName -eq $fname -and Surname -eq $lname' -Properties DisplayName, EmployeeID, Enabled | where enabled -eq $false
}
}
Write-Host "Count is: " $Total.count
话虽如此,您确定不想要
-SearchBase
而不是 -Server
吗?