AD账户到期和发送邮件脚本
创始人
2024-07-29 02:01:00
0

解决方法:

  1. 首先,需要使用 PowerShell 脚本来检查 AD(Active Directory)账户是否过期。以下是一个示例脚本:
# 设置AD账户的过期时间为90天
$expiryDate = (Get-Date).AddDays(90)

# 获取所有AD用户
$users = Get-ADUser -Filter * -Properties AccountExpirationDate

# 遍历每个用户检查过期时间
foreach ($user in $users) {
    # 检查过期时间是否为空
    if ($user.AccountExpirationDate -eq $null) {
        # 设置过期时间为90天后
        Set-ADUser -Identity $user -AccountExpirationDate $expiryDate
        Write-Host "已设置账户 $($user.Name) 过期时间为 $expiryDate"
    }
}

# 发送邮件通知
$smtpServer = "smtp.example.com"
$smtpPort = 587
$smtpUsername = "your-email@example.com"
$smtpPassword = "your-password"
$sender = "your-email@example.com"
$recipients = "recipient1@example.com", "recipient2@example.com"
$subject = "AD账户过期提醒"
$body = "您的AD账户将在 $expiryDate 过期,请及时更新密码。"

# 创建SMTP客户端
$smtpClient = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = New-Object System.Net.NetworkCredential($smtpUsername, $smtpPassword)

# 创建邮件消息
$mailMessage = New-Object System.Net.Mail.MailMessage
$mailMessage.From = $sender
$mailMessage.Subject = $subject
$mailMessage.Body = $body

# 添加收件人
foreach ($recipient in $recipients) {
    $mailMessage.To.Add($recipient)
}

# 发送邮件
$smtpClient.Send($mailMessage)
  1. 将以上代码保存为一个后缀为 .ps1 的 PowerShell 脚本文件,比如 expiry_notification.ps1

  2. 打开 PowerShell 终端,通过以下命令执行脚本:

.\expiry_notification.ps1

注意:在执行脚本之前,需要在计算机上安装 Active Directory PowerShell 模块。可以通过运行 Import-Module ActiveDirectory 命令导入该模块。

  1. 脚本将设置所有 AD 用户的过期时间为当前日期加上90天,并发送邮件通知用户其账户将在90天后过期。记得根据实际情况修改 SMTP 服务器、发件人、收件人、邮件主题和内容等参数。

相关内容

热门资讯

Android Studio ... 要解决Android Studio 4无法检测到Java代码,无法打开SDK管理器和设置的问题,可以...
安装tensorflow mo... 要安装tensorflow models object-detection软件包和pandas的每个...
安装了Laravelbackp... 检查是否创建了以下自定义文件并进行正确的配置config/backpack/base.phpconf...
安装了centos后会占用多少... 安装了CentOS后会占用多少内存取决于多个因素,例如安装的软件包、系统配置和运行的服务等。通常情况...
按照Laravel方式通过Pr... 在Laravel中,我们可以通过定义关系和使用查询构建器来选择模型。首先,我们需要定义Profile...
按照分类ID显示Django子... 在Django中,可以使用filter函数根据分类ID来筛选子类别。以下是一个示例代码:首先,假设你...
Android Studio ... 要给出包含代码示例的解决方法,我们可以使用Markdown语法来展示代码。下面是一个示例解决方案,其...
Android Retrofi... 问题描述:在使用Android Retrofit进行GET调用时,获取的响应为空,即使服务器返回了正...
Alexa技能在返回响应后出现... 在开发Alexa技能时,如果在返回响应后出现问题,可以按照以下步骤进行排查和解决。检查代码中的错误处...
Airflow Dag文件夹 ... 要忽略Airflow中的笔记本检查点,可以在DAG文件夹中使用以下代码示例:from airflow...