You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell生成Azure AD北美用户报告:无法获取SAM Account Name

解决Azure AD PowerShell脚本无法获取SAM Account Name的问题

我用以下PowerShell脚本从Azure AD导出北美地区(美国、加拿大)已启用用户的部分属性到CSV,脚本运行正常,但尝试添加SAM Account Name列时,用$azuser.SamAccountName、$azuser.ExtentionProperty["SamAccountName"]、$azuser.ObjectID["SamAccountName"]都无法获取到该属性,求解决办法。

原脚本:

param(
    [string] $path = "C:\Temp\ADUsersNA-$(Get-Date -format 'MM-dd-yyyy').csv"
)
 
Connect-AzureAD

$userData = @()

foreach ($azuser in Get-AzureADUser -All $true -Filter "accountEnabled eq true" | Where-Object { $_.Country -eq "United States" -or $_.Country -eq "Canada" }) {
    $manager = Get-AzureADUserManager -ObjectId $azuser.ObjectId -ErrorAction SilentlyContinue
    $managerEmail = if ($manager) { $manager.UserPrincipalName } else { "" }

    $userData += [pscustomobject]@{
        "Employee ID"   = $azuser.ExtensionProperty["employeeId"]
        "First Name"    = $azuser.givenName
        "Last Name"     = $azuser.surname
        "Work Email"    = $azuser.UserPrincipalName
        "Job Title"     = $azuser.JobTitle
        "Company"       = $azuser.CompanyName
        "Manager Email" = $managerEmail
        "City"          = $azuser.City
        "Country"       = $azuser.Country
    }
}

$userData | Export-Csv -Path $path -NoTypeInformation

尝试过的代码片段:

"SAM Name"     = $azuser.SamAccountName
"SAM Name"     = $azuser.ExtentionProperty["SamAccountName"]
"SAM Name"     = $azuser.ObjectID["SamAccountName"]

解决办法

  1. 属性名称修正:Azure AD中SAM Account Name对应的标准属性是onPremisesSamAccountName,而非你尝试的名称。
  2. 显式指定属性:Get-AzureADUser默认只返回基础属性集合,需要通过-Properties参数显式声明要获取onPremisesSamAccountName。

修改后的完整脚本

param(
    [string] $path = "C:\Temp\ADUsersNA-$(Get-Date -format 'MM-dd-yyyy').csv"
)
 
Connect-AzureAD

$userData = @()

# 新增-Properties参数指定获取onPremisesSamAccountName属性
foreach ($azuser in Get-AzureADUser -All $true -Filter "accountEnabled eq true" -Properties onPremisesSamAccountName | Where-Object { $_.Country -eq "United States" -or $_.Country -eq "Canada" }) {
    $manager = Get-AzureADUserManager -ObjectId $azuser.ObjectId -ErrorAction SilentlyContinue
    $managerEmail = if ($manager) { $manager.UserPrincipalName } else { "" }

    $userData += [pscustomobject]@{
        "Employee ID"       = $azuser.ExtensionProperty["employeeId"]
        "First Name"        = $azuser.givenName
        "Last Name"         = $azuser.surname
        "Work Email"        = $azuser.UserPrincipalName
        "Job Title"         = $azuser.JobTitle
        "Company"           = $azuser.CompanyName
        "Manager Email"     = $managerEmail
        "City"              = $azuser.City
        "Country"           = $azuser.Country
        "SAM Account Name"  = $azuser.onPremisesSamAccountName # 新增SAM账号列
    }
}

$userData | Export-Csv -Path $path -NoTypeInformation

内容的提问来源于stack exchange,提问作者Pmocha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:08