PowerShell - 过滤Get-ADUser以仅获取禁用的帐户

时间:2017-06-08 16:20:29

标签: powershell csv active-directory

我有一个csv文件,其中包含没有标题的用户名列表。我想最终得到第二个csv文件,该文件仅包含与被禁用的Active Directory用户对应的用户名。

我正在使用Get-Content然后ForEach-Object%)循环来查询AD并返回每个SAM及其启用属性的状态。

Get-Content users.csv | % {Get-ADUser $_ | Select-Object samaccountname,enabled}

虽然我真正需要做的是查看每个名称,并将与禁用帐户绑定的名称移动到新的csv文件。只有我不能完全理解如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

你快到了:

$users = @(gc users.csv | % {Get-ADUser $_ | select samaccountname,enabled})
$users | ? { -not($_.enabled) } | export-csv -notypeinformation $somecsv

我们正在做什么:

  1. 使用foreach-object循环遍历文本文件并选择 您想要的AD用户属性并将它们分配给数组@()。它们通常会作为数组返回,但我总是显式地转换,因为如果返回一个结果,它将作为单个对象而不是单项数组返回。
  2. 然后我们使用where-object别名(?)过滤那些用户 未启用,然后将其发送到“disabled_users.csv”