这就是我想要做的事情:
package.json
不为空的属性。以下是我目前的情况:
DisplayName
以下是问题:
Get-AdUser -Filter * -Properties DisplayName, Memberof |
select DisplayName, Memberof |
Export-Csv ********
字段显示在以下内容上,但现在显示真实的组名称:
MemberOf
我似乎无法找到将列名替换为“名称”,“组”等名称的方法。
csv文件的第一行包含以下内容:
Microsoft.ActiveDirectory.Management.ADPropertyValueCollection
有机会快速解决这个问题吗?
答案 0 :(得分:3)
这里要学习的关键概念之一是calculated properties。这使您可以在Select
时动态修改数据,使其对脚本中的总体目标更有用(无论可能是什么)。
所以对于你的问题:
这是因为memberOf
不是一个简单的字符串,它拥有自己的.NET类型Microsoft.ActiveDirectory.Management.ADPropertyValueCollection
。要扩展该值,请在select
语句
select displayName, @{name="MemberOf"; expression={$_.memberof -join ";"}}
同样,您可以使用计算属性。假设您要将“displayName”更改为“显示名称:。您将使用类似:
的内容select @{name="Display Name";expression={$_.displayName}}, @{name="MemberOf"; expression={$_.memberof -join ";"}}
导出CSV以在开头删除#TYPE
声明时,请将-NoTypeInformation
参数添加到Export-Csv
cmdlet。所以:
Export-csv -NoTypeInformation "myfile.csv"
此外,如果您只希望用户没有空的displayName,则可能需要更改初始Get-AdUser
上的过滤器。类似的东西:
Get-AdUser -Filter {DisplayName -ne ''} -Properties DisplayName, Memberof
答案 1 :(得分:0)
还发现了这个QUEST AD工具包。从戴尔网站下载,然后只需添加PASSnapin Quest.ActiveRoles.ADManagement。这对我们来说更容易查询任何AD相关数据。