PowerShell查询AD特定OU中电脑信息报错求助
PowerShell 查询特定OU下所有笔记本电脑AD信息解决方法
不用循环遍历,直接用Get-ADComputer的内置参数就能实现需求,你之前的报错大概率是脚本写法错误(比如把OU路径当成计算机名传参,或者-SearchBase路径写错),下面是修正后的脚本和关键说明:
正确脚本示例
# 替换成你目标OU的LDAP路径,可从ADUC的OU属性→属性编辑器→distinguishedName复制 $targetOU = "OU=Laptops,OU=CorpDevices,DC=yourdomain,DC=com" # 查询OU下所有笔记本,按需筛选属性并转换时间戳 Get-ADComputer -SearchBase $targetOU ` -Filter {OperatingSystem -like "*laptop*" -or OperatingSystem -like "*notebook*"} ` -Properties Name, Description, Created, lastLogonTimestamp | Select-Object Name, Description, Created, @{Name='LastLogonTime'; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}}
关键说明
- 指定搜索范围:用
-SearchBase参数直接锁定目标OU,无需手动遍历对象 - 筛选笔记本:通过
-Filter匹配操作系统字段里的“laptop”或“notebook”;如果你们AD用设备名称前缀(比如LAP-)区分,可改成{Name -like "LAP-*"} - 时间戳转换:AD的
lastLogonTimestamp是文件时间格式,必须用[DateTime]::FromFileTime()转成可读的日期时间 - 路径正确性:OU的LDAP路径必须准确,写错就会报“directory object not found”,直接从ADUC复制最稳妥
额外注意
- 先确保加载AD模块:运行
Import-Module ActiveDirectory - 你的账户需要有读取该OU下AD对象的权限
内容的提问来源于stack exchange,提问作者Crystal Boutique
相关产品推荐
相关产品推荐

