【发布时间】:2019-01-30 13:02:45
【问题描述】:
我有一个 CSV 文件,其中包含我负责在 Office 365 中自动执行的信息。在尝试从 CSV 导入项目时,我在经理字段方面遇到了问题。当 CSV 文件中只有一个条目时,以下代码可以完美运行,但只要我添加第二个或第三个条目,objectID 就会返回 null。是循环的问题吗?如果我使用其他命令,如 Set-AzureADUser -DisplayName
,它似乎工作正常$importFile = "c:\report\Users.csv"
$users = import-csv $importFile | select *
foreach($user in $users){
$DisplayName = $users.'Display Name'
$Managers = $users.'Manager'
$Employees = Get-AzureADUser | where displayname -EQ $displayName
$EmployeeManagers = Get-AzureADUser | where displayname -EQ $Managers
Set-AzureADUserManager -objectid $employees.ObjectId -RefObjectId $EmployeeManagers.ObjectId
}
【问题讨论】:
-
在哪个
foreach(第一个或第二个)你得到objectId作为null?您可以尝试在循环中打印它以查看迭代中的每个值。 -
如果我在 CSV 文件中只有一个条目,它会在第一个循环中正确返回。一旦我添加第二个条目,它就会返回 null
foreach($user in $users){ $DisplayName = $users.'Display Name' $Managers = $users.'Manager' $Employees = Get-AzureADUser | where displayname -EQ $displayName $EmployeeManagers = Get-AzureADUser | where displayname -EQ $Managers -
尝试在编辑器中调试,并确保您在第二行的
Display Name列中填写了正确的DisplayName。如果您可以在此处发布 csv,那就更好了。 -
它确实完美匹配。我已经在编辑器中调试过了。在 CSV 文件中使用单个条目(带有标题)它会正确返回,添加第二个条目并返回 null。
$DisplayName匹配正确。唯一的区别是在 csv 文件的Display name字段中添加额外的条目 -
也许这会有所帮助。 CSV 文件标题
Display Namecsv 文件条目 1user X当我尝试以下foreach($user in $users){ $DisplayName = $users.'Display Name' $Managers = $users.'Manager' $Employees = Get-AzureADUser | where displayname -EQ $displayName时,如果我将UserY添加到 CSV 文件中的位置 2,$employees返回 null
标签: powershell office365