none
如何自动删除禁用三个月以上的AD账户 RRS feed

  • Вопрос

  • 需求如下

    1、如何编写脚本进行删除禁用三个月以上的AD用户

    2、4725ID日志已开启,但是只保留几天 不会存在很长的日志,所以无法用此方法进行筛选删除。


    • Изменено longlong12 16 августа 2019 г. 3:24 重新发帖
    15 августа 2019 г. 6:57

Ответы

  • 你好,

    谢谢你的回复。

    请将remove-aduser改为“remove-adobject”, 然后加上-recursive参数就可以了。

    $date = (Get-Date).AddMonths(-3)
    Get-ADUser -Filter {lastlogondate -le $date -and enabled -eq $false} | Remove-ADObject  -Recursive -confirm:$false 

    最好的祝福,

    Lee


    Just do it.

    • Помечено в качестве ответа longlong12 19 августа 2019 г. 11:32
    19 августа 2019 г. 10:14

Все ответы

  • 你好,

    谢谢你的提问。

    AD用户属性中没有包含禁用账号日期的属性,确实如您所说由于日志大小限制会将旧的日志覆盖掉。

    但是据我所知,你可以通过AD用户lastlogondate属性来作为过滤条件,既然是已被禁用账号,那就不会再被登录。

    如果用户账号满足已经被禁用且已经三个月没有登录的话,也应该满足你的禁用三个月以上的条件。

    $date = (Get-Date).AddMonths(-3)
    Get-ADUser -Filter {lastlogondate -le $date -and enabled -eq $false} | %{ Remove-ADUser  -identity $_.samaccountname -Confirm:$false}

    此外记得 要以域管理员打开powershell运行这个脚本。

    工作顺利!

    Lee


    Just do it.


    16 августа 2019 г. 2:53
  • 你好,感谢你的答复。

    lastlogondate,请问这个属性值,可以代表Exchange邮箱登陆的值吗,还是只代表这个账号在加入域的计算机中登陆的时间值。

    16 августа 2019 г. 3:01
  • 据我所知,这是用户账号上次登录域中计算机的时间值。不可以代表exchange邮箱登录的值。

    Just do it.

    16 августа 2019 г. 3:10
  • 好的吧,感谢
    16 августа 2019 г. 3:15
  • 你好,

    请问您的问题解决了吗? 如果您使用我们的方案解决问题,请“将其标记为答案”,以帮助其他社区成员快速找到有用的回复。 如果您使用自己的方案解决问题,请在此处分享您的经验和解决方案。 对于有类似问题的其他社区成员也是非常有帮助的。 如果没有,请回复并告诉我们目前的情况,以提供进一步的帮助。

    Best Regards,

    Lee     


    Just do it.

    16 августа 2019 г. 5:24
  • Hi,

    域管理员,运行脚本提示:Remove-ADUser : 目录服务只可以在一个页状对象上运行要求的操

    原文报错:

    Remove-ADUser : 目录服务只可以在一个页状对象上运行要求的操作。
    所在位置 行:2 字符: 75
    + Get-ADUser -Filter {lastlogondate -le $date -and enabled -eq $false} | %{ Remove ...
    +                                                                           ~~~~~~
        + CategoryInfo          : NotSpecified: (hand:ADUser) [Remove-ADUser], ADException
        + FullyQualifiedErrorId : ActiveDirectoryServer:8213,Microsoft.ActiveDirectory.Management.Commands.RemoveADUser
    19 августа 2019 г. 9:46
  • 你好,

    谢谢你的回复。

    请将remove-aduser改为“remove-adobject”, 然后加上-recursive参数就可以了。

    $date = (Get-Date).AddMonths(-3)
    Get-ADUser -Filter {lastlogondate -le $date -and enabled -eq $false} | Remove-ADObject  -Recursive -confirm:$false 

    最好的祝福,

    Lee


    Just do it.

    • Помечено в качестве ответа longlong12 19 августа 2019 г. 11:32
    19 августа 2019 г. 10:14
  • Hi,

    第一次执行成功了,第二次提示我权限不足,可以实现 感谢。

    19 августа 2019 г. 11:32
  • 权限不足的帐号,请问是哪些账号呢,可能存在一些系统账号导致这个问题,我认为系统账号是可以忽略的。有其他问题欢迎继续提问。

    Just do it.

    20 августа 2019 г. 1:48