You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需从AD导出指定字段,排除子OU结果的PowerShell脚本求助

解决AD用户导出时排除指定子OU的问题

你的脚本问题出在Where-Object里的逻辑判断——用了-or而不是-and。用-or的话,只要用户的DistinguishedName不匹配其中一个排除OU,就会被保留,这完全不符合你要排除这4个OU的需求。正确的逻辑应该是:用户的DN同时不包含所有这4个OU的名称,才会被保留,所以必须把所有-or换成-and。

另外,脚本里用-Properties *会查询AD用户的所有属性,既浪费资源又拖慢速度,你只需要Department和Mobile这两个非默认属性,直接指定这两个就行。

修正后的完整脚本:

Get-ADUser -Filter * -SearchBase "OU=Employees,DC=MYCompany,DC=local" -Properties Department,Mobile | 
    Select-Object Displayname,Department,Mobile | 
    Where-Object { 
        $_.DistinguishedName -notlike "*OU=Disabled Accounts,*" -and 
        $_.DistinguishedName -notlike "*OU=Email ID,*" -and 
        $_.DistinguishedName -notlike "*OU=Resources,*" -and 
        $_.DistinguishedName -notlike "*OU=TEMPDISABLED,*"
    } | 
    Export-Csv -Path C:\writable\userexport.csv -NoTypeInformation

额外加了-NoTypeInformation参数,避免导出的CSV文件开头多一行类型信息,让结果更干净。

内容的提问来源于stack exchange,提问作者Aiden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:12:53