PowerShell 语言 批量禁用过期的本地用户账户 90 天未登录

PowerShell阿木 发布于 1 天前 2 次阅读


PowerShell脚本:批量禁用过期本地用户账户

在IT管理中,定期清理过期的用户账户是一个重要的任务。这不仅有助于提高系统性能,还能增强安全性。本文将介绍如何使用PowerShell脚本批量禁用过期90天未登录的本地用户账户。

随着企业规模的扩大和用户数量的增加,手动管理用户账户变得越来越困难。PowerShell作为Windows操作系统的强大脚本语言,可以帮助管理员自动化许多日常任务。本文将展示如何编写一个PowerShell脚本,用于批量禁用过期90天未登录的本地用户账户。

脚本需求分析

在编写脚本之前,我们需要明确以下需求:

1. 脚本应能够检测本地系统中所有用户账户。
2. 脚本应能够识别出90天未登录的用户账户。
3. 脚本应能够禁用这些用户账户。
4. 脚本应提供日志记录功能,以便跟踪操作结果。

PowerShell脚本编写

以下是一个简单的PowerShell脚本示例,用于实现上述需求:

powershell
定义日志文件路径
$logPath = "C:PathToLogDisableAccountsLog.txt"

获取当前日期
$today = Get-Date

获取90天前的日期
$ninetyDaysAgo = $today.AddDays(-90)

获取所有本地用户账户
$users = Get-LocalUser

遍历用户账户
foreach ($user in $users) {
获取用户最后登录时间
$lastLogon = $user.LastLogon

检查用户是否90天未登录
if ($lastLogon -lt $ninetyDaysAgo) {
禁用用户账户
Disable-LocalUser -Name $user.Name

记录操作到日志文件
Add-Content -Path $logPath -Value "Disabled user account: $($user.Name) on $($today)"
}
}

输出操作结果
Write-Host "Operation completed. Check the log file for details."

脚本说明

1. 我们定义了一个日志文件路径`$logPath`,用于记录操作结果。
2. 然后,我们获取了当前日期`$today`和90天前的日期`$ninetyDaysAgo`。
3. 接下来,我们使用`Get-LocalUser`命令获取所有本地用户账户。
4. 通过遍历用户账户,我们使用`LastLogon`属性检查用户是否90天未登录。
5. 如果用户90天未登录,我们使用`Disable-LocalUser`命令禁用该用户账户。
6. 我们将操作结果记录到日志文件中,并输出操作完成的消息。

脚本运行与测试

1. 将上述脚本保存为`.ps1`文件,例如`DisableExpiredAccounts.ps1`。
2. 打开PowerShell,切换到脚本所在的目录。
3. 运行脚本:`.DisableExpiredAccounts.ps1`。
4. 检查日志文件,确认操作结果。

总结

本文介绍了如何使用PowerShell脚本批量禁用过期90天未登录的本地用户账户。通过编写自动化脚本,管理员可以轻松地管理大量用户账户,提高工作效率。在实际应用中,您可以根据需要修改脚本,以满足不同的需求。