PowerShell:通过CSV文件更新O365 AD批量属性

时间:2019-10-01 20:58:34

标签: azure powershell azure-active-directory office365

我们正在尝试批量更新Azure Active Directory。我们有一个UserPrincipalNames的excel csv列表,我们将更新Title,部门和Office属性

# Get List of Clinical CMs
$PATH = "C:\Users\cs\Documents\IT Stuff\Project\Azure AD Update\AD-Update-ClinicalCMs-Test.csv"
$CMs = Import-csv $PATH

# Pass CMs into Function
ForEach ($UPN in $CMs) {
# Do AD Update Task Here
Set-Msoluser -UserPrincipalName $UPN -Title "Case Manager" -Department "Clinical" -Office "Virtual"
}

CSV:

User.1@domain.com
User.2@domain.com
User.3@domain.com

Set-MsolUser命令将单独运行,但此For循环中未按预期运行。任何帮助或见解都将不胜感激

1 个答案:

答案 0 :(得分:0)

Jim Xu发表了评论,这里我的评论就是答案。

您显示给我们的输入文件不是CSV文件,而是UPN值的列表,均在单独的行上。

要将这些值读取为字符串数组,最简单的方法是使用Get-Content

$PATH = "C:\Users\cs\Documents\IT Stuff\Project\Azure AD Update\AD-Update-ClinicalCMs-Test.csv"
$CMs = Get-Content -Path $PATH

当然,尽管过分夸大了,但是它可以使用Import-Csv cmdlet完成:

$CMs = (Import-Csv -Path $PATH -Header upn).upn