CSV上的输出与PowerShell中的参数不同

kuhbmx9i  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(139)

我从AD中的用户组获得了用户信息。除了用户名之外,每一列都没有问题。
在CSV上,用户名是正常的,但当我从CSV获取内容时,使用PowerShell的格式如下所示;
@{名称=abc}
对于具有两个CSV的Compare-Object,我需要使用-Expand。
有什么办法可以避免这种结果吗?
我想在CSV和PowerShell上获得相同的内容。
get-adgroup $path -server server.com | get-adgroupmember -recursive | select-object -unique | get-aduser -properties mail | name, mail | export-csv c:\result.csv

dxxyhpgq

dxxyhpgq1#

使用import-csv cmdlet导入CSV,而不是get-content。此外,提供的代码样例也不起作用--例如,您在这里错过了select-object

| name, mail |

您不需要查询群组,因为您已经知道名称($PATH),您可以直接查询群组成员身份,例如:

get-adgroupmember -identity $path -recursive

但最终你可以用一种更有效的方式实现同样的目标,例如:

get-aduser -LDAPFilter "(memberOf:1.2.840.113556.1.4.1941:=[groupDistinguishedName])" -property mail | select-object -property mail,name | export-csv [path]

将[groupDistinguishedName]替换为该组的DistinnguishedName。这将为您返回属于已定义组的成员(可传递的)的所有用户。
请参阅:https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/4e638665-f466-4597-93c4-12f2ebfabab5

相关问题