清理可能废弃的AD用户和计算机账户

简介:
#查找N天未活动的计算机或者用户,并移动到指定OU
#system.directoryservices.directorysearcher
#http://msdn.microsoft.com/en-us/library/system.directoryservices.directorysearcher.aspx
$maxOldLogonDays = 30
$TargetOU="OU=Computers,OU=Recycl_Bin,DC=TigerCompanyoa,DC=cn"
#$TargetOU="OU=users,OU=Recycl_Bin,DC=TigerCompanyoa,DC=cn"
$CSVFileLocation='C:\TEMP\OldObjects.CSV' 
$query = New-Object system.directoryservices.directorysearcher
$root = [adsi]" LDAP://DC=TigerCompanyoa,DC=cn "
$query.SearchRoot = $root
$query.filter = "(objectCategory=computer)"
#$query.filter = "(objectCategory=user)"
$query.SearchScope = "subtree"
$query.PageSize = 100; #很奇怪,居然找到了近1万个计算机。。
$result = $query.findAll() |
ForEach-Object -process `
{
if ($_.properties.item("lastLogonTimestamp") -gt 0) 
#I get alot of lastLogonTimestamps that are not null but not empty either
#-gt 0 seems to work best as test for valid datestamp
{
$rawLogon = $_.properties.item("lastLogonTimestamp")
$convertedLogOn = [datetime]::FromFileTime([int64]::Parse($rawLogon))
#To translate the lastLogonTimestamp attribute, we can use the FromFileTime static 
#method from the system.datetime class. We also use the static method parse 
#from the system.int64 class and give it the value we stored in the $rawLogon variable. 
#We save the converted datetime object into the $convertedLogOn variable.
#Write-Host $convertedLogOn
$passwordage = ((get-date) - $convertedLogOn)
#Write-Host $passwordage.Days
If($passwordage.Days -gt $maxOldLogonDays)
{
#Write-Host "$($_.properties.item('distinguishedName')) 
#has not logged on for more than  $maxOldLogonDays days" 
$($_.properties.item('distinguishedName')) | out-file $CSVFileLocation -Append  #输出原来的DN
#Move-ADObject -Identity "$($_.properties.item('distinguishedName'))" -TargetPath $TargetOU #移动到指定OU
}
}
}









本文转自 tigerkillu 51CTO博客,原文链接:http://blog.51cto.com/chenyitai/551972,如需转载请自行联系原作者
目录
相关文章
|
Ubuntu 数据安全/隐私保护
Ubuntu下/etc/sudoers的设置和sudo免密码执行及设置无效的原因
Ubuntu下免密码执行sudo及设置无效的原因
3876 0
|
安全 Linux Shell
structure needs cleaning结构需要清理解决方案
structure needs cleaning结构需要清理解决方案
4904 0
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
38883 2
|
应用服务中间件 数据安全/隐私保护 nginx
Gitlab----使用Docker方式安装部署Gitlab
Gitlab----使用Docker方式安装部署Gitlab
13263 1
Gitlab----使用Docker方式安装部署Gitlab
|
8月前
|
数据采集 监控 数据挖掘
静态IP代理的应用场景及企业使用指南
静态IP代理提供固定IP地址,具备高稳定性和安全性,适用于跨境电商、社交媒体管理、SEO、网络数据采集、远程办公及爬虫分析等场景。企业通过选择可靠的供应商、配置网络设置并合理应用,可有效提升业务效率和安全性。例如,某电商公司利用静态住宅代理IP进行数据采集,成功分析竞争对手策略,实现销售额20%的增长。
347 1
计算机硬件清洁与防尘
【8月更文挑战第2天】
788 1
|
运维 IDE Linux
KVM详解(九)——CentOS6虚拟机关机失败问题解决
KVM详解(九)——CentOS6虚拟机关机失败问题解决
381 5
|
Prometheus Cloud Native 网络安全
Prometheus+Grafana+Alertmanager部署教程(超详细)
Prometheus+Grafana+Alertmanager部署教程(超详细)
3063 0
Prometheus+Grafana+Alertmanager部署教程(超详细)
|
Ubuntu 编译器 C语言
如何在 Ubuntu 22.04 LTS 上安装 Spack?
【1月更文挑战第8天】
362 0
如何在 Ubuntu 22.04 LTS 上安装 Spack?
|
机器学习/深度学习 算法
大模型开发:你如何优化超参数?
超参数优化是提升机器学习和深度学习模型性能的关键,包括手动调整、网格搜索、随机搜索、贝叶斯优化、基于梯度的优化、进化算法等方法。此外,利用超参数调优工具、迁移学习、元学习和集成方法也是常用策略。实践中,应结合项目需求和资源选择合适的方法,并配合交叉验证和提前停止技术。
963 1