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

PowerShell提取安全组info属性转HTML时出现@{info=内容}问题求助

解决PowerShell提取AD组info属性时出现@{info=...}的问题

这个问题我太熟了!你看到的@{info=我的信息}其实是PowerShell自定义对象的默认输出格式——因为你用Select-Object info返回的是一个只包含info属性的对象,不是单纯的属性值本身。下面给你两种简单的解决办法:

方法1:用-ExpandProperty提取纯属性值

修改你的循环代码,给Select-Object加上-ExpandProperty参数,它会直接把指定属性的内容取出来,而不是包装成对象:

$user = $env:username
$OfficeLocations = @("San Antonio Sales","Oregon Sales","Phoenix Sales")
$OfficeAddress = foreach($OfficeLocation in $OfficeLocations) {
    Get-ADGroup -Identity $OfficeLocation -Properties info | Select-Object -ExpandProperty info
}

方法2:直接访问对象的属性

更简洁的写法是跳过Select-Object,直接通过对象的属性访问符.info获取值,性能也会稍好一点:

$user = $env:username
$OfficeLocations = @("San Antonio Sales","Oregon Sales","Phoenix Sales")
$OfficeAddress = foreach($OfficeLocation in $OfficeLocations) {
    (Get-ADGroup -Identity $OfficeLocation -Properties info).info
}

补充:处理Get-ADPrincipalGroupMembership的场景

你提到后面用Get-ADPrincipalGroupMembership获取用户组的部分,如果也要提取这些组的info属性,注意这个cmdlet返回的组对象默认不包含info,所以需要再调用Get-ADGroup获取属性,同样用上面的方法:

$objGroup = Get-ADPrincipalGroupMembership -Identity $user | ForEach-Object {
    # 这里用$_.DistinguishedName或者$_.SID比Name更可靠,避免重名组的问题
    (Get-ADGroup -Identity $_.DistinguishedName -Properties info).info
}

核心逻辑就是:当你需要的是属性的具体内容时,不要用普通的Select-Object,要么用-ExpandProperty展开,要么直接访问对象的属性。这样就不会再出现@{info=...}这种对象格式的输出了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:28:38