尝试为get-aduser

时间:2019-09-06 08:53:44

标签: powershell import-from-csv

我正在尝试使用用户名列表来执行简单的get-aduser命令。单个用户可以正常使用,但是我无法输入文件来执行此操作。

此命令对单个用户有效:

get-aduser -identity myusername -properties passwordlastset, passwordneverexpires | 
    sort name | ft Name, passwordlastset, Passwordneverexpires | out-file c:\PS\Output.txt

这很好用,但是我没有对所有AD或指向文件的标识使用-filter *,而是完全迷失了。我曾尝试做一个get-content并链接到一个文件,但我只是陷入了一个泡菜。

如果我有一个包含用户名列表的文本文件,该如何对单个文本文件列表而不是整个AD运行上述命令?

作为附带查询,是否可以执行上述命令,但是要针对特定​​的OU?

2 个答案:

答案 0 :(得分:2)

如果列表不是对象,则可以将其导入对象或遍历值

尝试类似的方法:

$Userlist = Get-Content -path 'c:\temp\test.txt'
$Results = $Userlist | ForEach-Object {
    Get-aduser -identity $_ -properties passwordlastset, passwordneverexpires
}
$Results | sort name | ft Name, passwordlastset, Passwordneverexpires | out-file c:\PS\Output.txt

只要您在列表中提供有效的SamAccountNames,此方法便会起作用

答案 1 :(得分:1)

我会这样做。您可以通过管道传递身份按值。您可以稍后导入csv并找回对象。

get-content userlist.txt | 
Get-aduser -properties passwordlastset, passwordneverexpires | 
sort name | 
select Name, passwordlastset, Passwordneverexpires | 
export-csv users.csv


# searchbase example
get-aduser -filter 'name -like "j*"' -SearchBase 'OU=People,DC=stackoverflow,DC=com'