我想要提取所有Active Directory帐户的报告,在每个帐户中包含某些属性/属性,并将其传输到.csv文件中,这样我就可以添加格式和过滤器(等等)管理。
我有一个他们想要包含的属性列表(DisplayName,SamAccountName,Enabled,Created,AccountExpirationDate,LastLogonDate,PasswordLastSet,EmailAddress),其中大部分都是extended properties of the Get-ADUser cmdlet。我首先尝试像默认属性一样抓住它们,如下所示:
Get-ADUser -Filter * -SearchBase "dc=somedomain,dc=tld" `
| select DisplayName, SamAccountName, Enabled, Created, AccountExpirationDate, LastLogonDate, PasswordLastSet, EmailAddress `
| export-csv c:\DominAccountsPasswordInfoDump.csv -NoTypeInformation
...但是这不起作用,作为扩展属性"are only retrieved if they are specified in the -Properties parameter of the cmdlet",所以我得到了一个带有一堆空白列的.csv。
现在我的问题是我不知道如何在-Properties
语句中指定select
参数,(我似乎每次尝试都会收到以下错误消息)
Select-Object:找不到与参数名称'Parameters'匹配的参数。
在考虑select-object
部分时,我开始怀疑是否需要定义我读入的每个用户对象(将其分配给$user
变量或其他东西),在这一点上,我认为我应该寻求帮助,然后再进一步解决问题。由于搜索Google和StackExchange没有帮助,我在这里问。
如何选择AD用户的扩展属性? (理想情况下,使用我上面提到的单行脚本/ PowerShell命令。)
答案 0 :(得分:7)
您可以在Get-ADUser cmdlet中执行此操作。
示例:
$Properties =
@(
'DisplayName',
'SamAccountName',
'Enabled',
'Created',
'AccountExpirationDate',
'LastLogonDate',
'PasswordLastSet',
' EmailAddress'
)
Get-ADUser -Filter * -SearchBase "dc=somedomain,dc=tld" -Properties $Properties |
select $Properties |
export-csv c:\DominAccountsPasswordInfoDump.csv -NoTypeInformation
然后,select将排除您不想导出的默认属性。