我有一个CSV文件,其中包含我要在Office 365中进行自动化的任务。在尝试从CSV导入项目时,我在管理器字段上遇到了麻烦。当CSV文件中只有一个条目时,以下代码可以完美运行,但是一旦我添加了econd或第三个条目,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
}
答案 0 :(得分:0)
问题在foreach
中的变量用法中。您正在foreach中使用$Users
,它将包含多个项目。将其更改为当前项目循环中的$user
。
foreach($user in $users){
$DisplayName = $user.'Display Name'
$Managers = $user.'Manager'
$Employees = Get-AzureADUser | where displayname -EQ $displayName
$EmployeeManagers = Get-AzureADUser | where displayname -EQ $Managers
Set-AzureADUserManager -objectid $employees.ObjectId -RefObjectid $EmployeeManagers.ObjectId
}
答案 1 :(得分:0)
谢谢!现在非常接近。唯一的问题是它现在将每个用户都设置为同一管理员。
$importFile = "c:\report\Users.csv"
$users = import-csv $importFile | select *
foreach($user in $users){
$DisplayName = $user.'Display Name'
$Managers = $user.'Manager'
$Employees = Get-AzureADUser | where displayname -EQ $displayName
$EmployeeManagers = Get-AzureADUser | where displayname -EQ $Managers
Set-AzureADUserManager -objectid $employees.ObjectId -RefObjectId $EmployeeManagers.ObjectId
}
foreach ($user in $users) {get-AzureADUserManager -objectid $employees.objectid}
这将为所有用户返回同一管理员,即使CSV文件中的管理员标头对于每个用户而言都有不同的条目。
答案 2 :(得分:0)
如果它对其他人有帮助,Prasoons的回答是100%正确,一旦我将最后一行添加到循环中,它就可以完美工作。最终的工作代码如下。谢谢Prasoon!
$importFile = "c:\report\Users.csv"
$users = import-csv $importFile | select *
foreach($user in $users){
$DisplayName = $user.'Display Name'
$Managers = $user.'Manager'
$Employees = Get-AzureADUser | where displayname -EQ $displayName
$EmployeeManagers = Get-AzureADUser | where displayname -EQ $Managers
Set-AzureADUserManager -objectid $employees.ObjectId -RefObjectId $EmployeeManagers.ObjectId
get-AzureADUserManager -objectid $employees.objectid
}