【问题标题】:How do I select the extended properties of an [Active Directory] object?如何选择 [Active Directory] ​​对象的扩展属性?
【发布时间】:2014-02-07 18:41:19
【问题描述】:

我希望提取我们所有 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。

现在我的问题是我不知道如何在我的 select 语句中指定 -Properties 参数,(我似乎每次尝试都会收到以下错误消息)

Select-Object : 找不到与参数名称“Parameters”匹配的参数。

在考虑其中的select-object 部分时,我开始怀疑是否需要定义我读入的每个用户对象(将其分配给$user 变量或其他东西),此时我我想我应该先寻求帮助,然后再继续胡闹。由于搜索 Google 和 StackExchange 没有帮助,我在这里问。

如何选择 AD 用户的扩展属性? (理想情况下,使用我上面的单行脚本/PowerShell 命令。)

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您可以在 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
    

    然后选择将排除您不想导出的默认属性。

    【讨论】:

    • 工作出色,谢谢。我想你为我节省了大约一个小时的头撞墙时间,非常感谢。
    • 不客气!有时你只需要一个例子:)。
    猜你喜欢
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    相关资源
    最近更新 更多