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

如何合并两个Get-ADUser筛选条件查询AD非活跃用户?

合并AD用户筛选条件的正确写法

首先纠正你原代码里的一个小错误:$TimeRange 那行的变量名写错了,应该是 $NumberOfDays(多了个s),不然会因变量未定义报错。

要同时满足60天未活跃和用户名以f_开头这两个条件,只需要在Get-ADUser的-Filter参数里用-and把两个条件合并即可。另外建议不要用-Properties *,只指定需要的属性(比如LastLogonTimeStamp),这样能提升查询效率。

完整代码如下:

# 设置非活跃天数阈值
$NumberOfDays = 60

# 计算时间范围:当前日期往前推60天
$TimeRange = (Get-Date).AddDays(-$NumberOfDays)

# 合并两个筛选条件:60天未登录 且 用户名以f_开头
Get-ADUser -Filter { LastLogonTimeStamp -lt $TimeRange -and Name -like "f_*" } `
           -Properties LastLogonTimeStamp, Name, SamAccountName |
    Format-Table Name, SamAccountName, @{Name='LastLogon'; Expression={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}} -AutoSize

代码说明:

  • 用-and连接两个筛选条件,确保结果同时满足两个要求
  • 显式指定所需属性,避免加载不必要的AD属性,加快查询速度
  • 新增LastLogon列,把AD存储的LastLogonTimeStamp(文件时间格式)转换成可读的日期时间
  • 用-AutoSize让表格列宽自动适配内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:25:21