Powershell noob 在這里嘗試僅使用帶有電子郵件地址的 csv 從 AAD 獲取 UPN 串列,但沒有任何幫助指向正確的方向;
CSV 提取示例
我可以使用此代碼從單個電子郵件地址獲取 UPN;
$User = "[email protected]"
Get-AzureADUser -Filter "startswith(Mail,'$User')" | Select-Object DisplayName,UserPrincipalName,Mail,ObjectId | Export-csv -append -notypeinformation “C:\Temp\output.csv”
到目前為止,我嘗試對 csv 中的多個電子郵件地址執行此操作失敗了;
$Result = @()
$AllUsers = Import-Csv "C:\Temp\Users.csv"
ForEach ($User in $AllUsers)
{
Get-AzureADUser -Filter "startswith(Mail,'$Users')" | Select-Object DisplayName,UserPrincipalName,Mail,ObjectId
$Result = New-Object PSObject -property $([ordered]@{
UserName = $User.DisplayName
UserPrincipalName = $User.UserPrincipalName
PrimarySmtpAddress = $User.Mail
AliasSmtpAddresses = ($User.ProxyAddresses | Where-Object {$_ -clike 'smtp:*'} | ForEach-Object {$_ -replace 'smtp:',''}) -join ','
UserId= $User.ObjectId
})
}
$Result | Export-CSV "C:\Temp\output.csv" -NoTypeInformation -Encoding UTF8
任何我在上述方面失敗的建議或關于如何更好地做到這一點的建議?
uj5u.com熱心網友回復:
主要問題在于您的過濾器,"startswith(Mail,'$Users')"在這種情況下$Users未定義。
下一個問題是,Get-AzureADUser正在被呼叫,但它的輸出未被捕獲。
這應該可行,我假設具有用戶電子郵件的 Csv 列稱為EmailAddress,更改(Import-Csv ...).EmailAddress為相應的屬性名稱。
# for each value in the "EmailAddress" Column
(Import-Csv "C:\Temp\Users.csv").EmailAddress | ForEach-Object {
# if the user exists in Azure AD
if($azusr = Get-AzureADUser -Filter "mail eq '$_'") {
# output this object
[pscustomobject]@{
UserName = $azusr.DisplayName
UserPrincipalName = $azusr.UserPrincipalName
PrimarySmtpAddress = $azusr.Mail
AliasSmtpAddresses = $azusr.ProxyAddresses -clike 'smtp:*' -replace 'smtp:' -join ','
UserId = $azusr.ObjectId
}
}
} | Export-CSV "C:\Temp\output.csv" -NoTypeInformation -Encoding UTF8
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/490727.html
標籤:电源外壳
上一篇:下載后洗掉FTP服務器檔案
