我不知道为什么我不能让它工作,但我有一个.csv的员工ID,我想将它们添加到AD组,但我不能让它工作
Function Sync-ADGroup {
$userIDs = Import-CSV $CSV
foreach($ID in $IDs){
Get-ADUser -Filter "EmployeeID -eq '$ID'" -Properties SAMAccountName
}
}
然后我会将它们添加到组中,但我无法返回ADUserObject。不确定我错过了什么。
答案 0 :(得分:2)
您需要引用用户的属性名称(列),因为它显示在csv文件中。例如,如果文件中的值位于EmployeeID标题下:
foreach($userID in $userIDs)
{
Get-ADUser -Filter "EmployeeID -eq $($userID.EmployeeID)" -Properties SAMAccountName
}
要使上述工作正常,您的csv文件需要如下所示:
EmployeeID
1234
2345
3456
答案 1 :(得分:0)
未声明的集合变量用于foreach循环。
$userIDs = Import-CSV $CSV # Load stuff to "userIDs"
foreach($ID in $IDs){ # Enumerate "IDs", oops, should be "userIDs"
由于$IDs
为空变量,因此循环不会做太多。
为避免此类错误,请使用严格模式:Set-PSDebug -Strict
。这将导致使用未声明变量的错误。 (Rant:严格模式应该是Powershell中的默认模式。我在我的个人资料中设置它以及我写的所有脚本都很好。)