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

PowerShell检查AD账户修改时间时出现op_Subtraction多义重载错误

解决思路
  • 先确认属性类型:在遍历$Imported的循环中添加一行代码,检查Modified属性的实际类型:

    Write-Host "Modified type for $($i.Name): $($i.Modified.GetType().FullName)"
    

    手动执行Get-ADUser返回的ADUser对象中,Modified是System.DateTime类型,但如果$Imported是从CSV或其他非AD数据源导入的集合,Modified大概率会被解析为字符串(System.String)。这种情况下PowerShell无法确定如何执行DateTime与字符串的减法操作,就会触发歧义重载错误。

  • 强制转换为DateTime类型:如果确认Modified是字符串类型,计算时间差前先将其转换为DateTime:

    $modifiedDate = [DateTime]$i.Modified
    $ObjDelta = (Get-Date) - $modifiedDate
    

    若字符串日期格式非系统默认,用ParseExact指定格式更稳妥:

    $dateFormat = "yyyy-MM-dd HH:mm:ss" # 替换为你的实际日期格式
    $modifiedDate = [DateTime]::ParseExact($i.Modified, $dateFormat, $null)
    $ObjDelta = (Get-Date) - $modifiedDate
    
  • 优化导入过程:如果$Imported来自CSV文件,导入时直接指定类型可避免后续转换:

    $Imported = Import-Csv -Path "your_file.csv" -Type @{ Modified = [DateTime] }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:32:40