使用Powershell将已启用和已禁用的AD用户(在两个不同的文件中)导出为CSV

时间:2016-12-28 10:21:11

标签: csv active-directory powershell-v4.0

我需要使用以下属性分别启用和禁用用户:

  • 姓名
  • DisplayName的
  • EmailAddress的
  • 描述
  • AccountStatus

但是在检索已禁用的用户时输入正确的属性时遇到问题。你能检查并更正下面的脚本吗?此外,我需要检索具有相同属性的已启用用户。

Import-Module ActiveDirectory
Search-ADAccount –AccountDisabled -UsersOnly |
    Select -Property Name,SamAccountName,EmailAddress |
    Export-Csv "C:\\DisabledADUsers.csv" -NoTypeInformation -Encoding UTF8

1 个答案:

答案 0 :(得分:0)

Search-ADAccount仅返回用户的一部分'属性。通过Get-ADUser管道搜索结果以获取所有属性并通过`Select-Object:

限制输出
$props = 'Name', 'DisplayName', 'EmailAddress', 'Description', 'Enabled'

Search-ADAccount –AccountDisabled -UsersOnly |
    Get-ADUser -Properties $props |
    Select $props |
    Export-Csv "C:\\DisabledADUsers.csv" -NoTypeInformation -Encoding UTF8

请注意,没有属性/属性"全名"或" AccountStatus"。如果您想要自定义属性,则必须自己创建calculated properties

Search-ADAccount –AccountDisabled -UsersOnly |
    Get-ADUser -Properties Name,DisplayName,EmailAddress,Description,Enabled |
    Select-Object @{n='Full Name';e={$_.Name}},
        DisplayName, EmailAddress, Description,
        @{n='AccountStatus';e={@('Disabled','Enabled')[([int]$_.Enabled)]}} |
    ...

但是,既然您想要启用和禁用用户(仅在单独的文件中),那么单独枚举它们就没有意义了。只需致电Get-ADUser并将结果附加到相应的文件中。

Get-ADUser -Filter * -Properties Name,DisplayName,EmailAddress,Description,Enabled |
    Select-Object @{n='Full Name';e={$_.Name}},
        DisplayName, EmailAddress, Description,
        @{n='AccountStatus';e={@('Disabled','Enabled')[([int]$_.Enabled)]}} |
    ForEach-Object {
        $csv = '{0}ADUsers.csv' -f $_.AccountStatus
        $_ | Export-Csv $csv -Append -NoType -Encoding UTF8
    }