【发布时间】:2020-10-09 03:07:05
【问题描述】:
我有一个脚本来导入用户列表,并想检查这些用户是否被禁用。我确实尝试运行下面的脚本,但它不会过滤 CSV 文件中的用户,它会过滤整个组织中的每个人。任何建议,将不胜感激。如果需要使用标头,则在 CSV 文件的标头之一中显示名称和 SIP 地址。
Import-CSV -Path .\Piscataway-+1732.csv | ForEach-Object {
Get-ADUser -Filter "Enabled -eq '$true'" | select Enabled,EmailAddress,SamAccountName
} | Export-CSV .\results77.csv -NoTypeInformation
【问题讨论】:
-
您没有使用从 CSV 文件中导入的数据。为此,您需要使用管道变量
$_。另一种方法是使用Search-ADAccount –AccountDisabled –UsersOnly查找所有禁用用户,并将此列表与Compare-Object与您的CSV 文件中的数据进行比较。 -
或许可以试试
Get-ADUser -Filter "DisplayName -eq '$($_.DisplayName)' -and Enabled -eq '$false'" -
@mklement0 如果不赞美你,我就无法阅读你的作品,在这种情况下,你关联答案的能力非常棒。它确实使对话更加健壮。在实践中,我没有发现
-Filter 'Enabled -eq $true'有任何问题,而且我经常使用它!但是,这不是第一次被忽视,所以我继续进行重新测试。我从-Filter得到的结果与使用Where进行后过滤时得到的结果相同。我通过-Filter *获得了更多结果。这似乎是说-Filter 'Enabled -eq $true'有效! -
@mklement0 - 请参阅下面的最终脚本。我确实使用了 Steven 逻辑并更改了脚本,所以它给了我需要的结果 'Import-CSV -Path "c:\temp\export1221.csv" |选择对象@{Label = 'Enabled';表达式 = { ( Get-ADUser $_.samAccountName ).Enabled } } ,samAccountName | Export-CSV -Path "c:\temp\Output88.csv" -NoTypeInformation ' 结果如下所示 启用 samAccountName TRUE samAccountName1 TRUE samAccountName2 FALSE samAccountName3 TRUE samAccountName4
-
@mklement0 我确实及时对其他答案发表了评论。对不起,我忘了在这里提及。
标签: powershell active-directory export-to-csv