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

PowerShell数组对象提取问题:获取每个用户名的姓名与邮箱

解决PowerShell提取用户姓名与邮箱的问题

核心问题说明

如果你的数组里只是纯字符串格式的用户名,直接尝试提取Name和EmailAddress属性必然失败——因为字符串本身不具备这些用户属性,必须先将每个用户名转换为对应的用户对象,再提取所需字段。

解决方案代码

1. 确认你的用户名数组

假设你的数组定义如下(替换为实际用户名):

$userNames = @("jdoe", "asmith")

2. 针对AD用户的处理(最常见场景)

使用Get-ADUser cmdlet(需提前安装Active Directory模块),遍历数组获取属性:

# 遍历每个用户名,获取AD用户对象并筛选属性
$userNames | ForEach-Object {
    Get-ADUser -Identity $_ -Properties Name, EmailAddress | Select-Object Name, EmailAddress
}

# 更简洁的批量写法
Get-ADUser -Identity $userNames -Properties Name, EmailAddress | Select-Object Name, EmailAddress

注意:如果提示找不到Get-ADUser,先执行Import-Module ActiveDirectory导入模块,或者确保已安装RSAT工具包。

3. 针对本地用户的处理

如果是Windows本地用户,默认没有EmailAddress属性,可根据实际存储位置调整(比如用Description字段存邮箱):

$userNames | ForEach-Object {
    Get-LocalUser -Name $_ | Select-Object Name, @{Name='EmailAddress'; Expression={$_.Description}}
}

常见报错排查

  • 用户不存在:检查数组里的用户名拼写是否正确,确认该用户在AD/本地用户列表中存在。
  • EmailAddress为空:确认AD用户的邮箱属性已正确设置,本地用户则检查对应字段是否有值。
  • 命令不可用:AD环境需确保安装Active Directory模块,本地用户需PowerShell 5.1及以上版本支持Get-LocalUser。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:59:58