我正在尝试使用用户名列表来执行简单的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?
答案 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'