【发布时间】:2020-10-07 09:32:15
【问题描述】:
我正在尝试将 AD 安全组缩小到可管理的大小,但由于 Powershell 中的显示限制,这对我来说很难。在删除所有禁用的 AD 帐户后,该组现在已降至 47,720。现在我正在尝试将其过滤到居住在此特定 OU 中的已启用用户。以下是我在控制台中成功使用的内容。
Get-ADGroup "very_large_secgroup" -properties Member | Select-Object -expandproperty member | get-aduser -Filter * -SearchBase "OU=PurgeStudents,OU=DisabledAccounts,DC=contoso,DC=com" | Select-Object SamAccountName,DistinguishedName
当我尝试计算这个,或者通过 Out-File 管道它时,我得到:
get-aduser :输入对象不能绑定到命令的任何参数,因为命令不接受管道输入,或者输入及其属性与任何参数不匹配 接受管道输入。 在行:1 字符:92 + ... ty 成员 | get-aduser -Filter * -SearchBase "OU=PurgeStudents,OU=Dis ...
任何帮助将不胜感激,因为我是 Powershell 魔法的新手。
【问题讨论】:
-
您看到此错误的原因是因为您在未使用
-Identity参数的情况下通过管道传递到Get-ADUser。-Identity是按值接受管道输入的内容。当您使用-Filter时,您选择的参数集不包括-Identity。 -
所以因为我已经从已经建立的组成员列表中提取了 get-aduser,所以当我收到控制台输出时并不重要。当我尝试将整个内容导入 csv 时,它开始崩溃?
-
我不明白你的意思。但是您不能使用语法
$listOfUsers | get-aduser -filter * -searchbase OU。如果您将值列表作为输入传递到Get-ADUser,则必须保留-Filter和-SearchBase。
标签: powershell active-directory