用于运行 PowerShell 脚本和电子邮件警报的任务计划程序
如果您想要设置任务计划程序来运行 PowerShell 脚本来生成每日报告,请以电子邮件附件形式接收。
您可以借助任务计划程序和 PowerShell 脚本轻松完成此操作。
要将其作为附件通过电子邮件发送,您的组织中应该有 Exchange Server。
在本文中,我们将运行 PowerShell 脚本来生成用户上次登录的每日报告。
因此,我们将每天凌晨 1 点运行该脚本,并通过电子邮件附件收到报告。
通过每天安排,我们将每天自动在我们的电子邮件中收到一封有关用户上次登录的电子邮件。
这种自动化将减少管理员的工作量,并有助于轻松管理用户和计算机。
准备要在任务计划程序中运行的 PowerShell 脚本
我们的第一步是准备我们想要自动化的 PowerShell 脚本。
在我们的示例中,我们安装了 Exchange 2019,并且我们将在 Exchange Server 本身中安排任务。
我们有以下名为 dailyReport.PS1 的脚本保存在 C 盘内。
$Date = Get-Date -Format "yyyy-MM-dd"
$ReportFolder = "C:Reports"
if (!(Test-Path $ReportFolder)) {
New-Item -ItemType Directory -Path $ReportFolder
}
$ReportFile = "$ReportFolderDailyReport_$Date.csv"
# Export AD Users
$Users = Get-ADUser -Filter * -Property SamAccountName, DisplayName, Enabled, LastLogonDate
$Users | Export-Csv $ReportFile -NoTypeInformation -Encoding UTF8
# Send Email with Report Attachment
$sendMailMessageSplat = @{
From = 'Administrator <[email protected]>'
To = 'Jack <[email protected]>'
Subject = 'Daily User Report'
Body = 'Please find the attached user daily report.'
SmtpServer = 'mail.techijack.net'
Attachments = $ReportFile
}
Send-MailMessage @sendMailMessageSplat

设置任务计划程序以运行 PowerShell 脚本
打开任务调度程序
打开后,右键单击任务计划程序,然后单击创建基本任务


现在为任务命名,在我们的例子中,我们将其命名为“用户上次登录的每日报告”,然后单击“下一步”。


单击“下一步”后,选择“每日”选项以开始任务


继续下一步后,设置运行任务的日期和时间并继续下一步。
在我们的示例中,我们将任务设置为在凌晨 1:00 运行


因此,现在您将看到启动程序的屏幕。
选择“启动程序”选项并继续下一步。
在下一个屏幕中,它将询问程序/脚本,添加参数,然后开始。
在程序脚本中键入 PowerShell
因此,在添加参数类型中-NoProfile -ExecutionPolicy 绕过 -文件“C:dailyreport.ps1”
在“开始”中键入 c:


注意:我们的“dailyreport.ps1”位于 C: 驱动器中,与我们在参数中设置的相同,请确保根据您的配置设置路径和脚本文件。
现在,点击下一个和结束基本任务向导。
至此,我们已经成功配置了任务调度程序让我们的脚本在凌晨 1:00 运行
当时间到达凌晨 1:00 时,该脚本将运行,我们将在 jack 用户的收件箱中收到电子邮件。
在电子邮件中检查结果
脚本成功运行,我们在 Jack 用户的收件箱中收到了电子邮件
现在您可以看到,我们有一个名为“每日报告”并带有日期的电子邮件附件。


结论
您可以为所需的报告设置脚本并将其作为电子邮件的附件发送。
任务计划程序将帮助每天运行脚本,以便您每天都可以收到电子邮件附件。
您可以添加多个脚本并获取电子邮件警报以减少日常工作量。
如果您对本文有任何疑问。请随时联系。
我希望您还会喜欢更多有关 Exchange Server 的教程。
此外,如果您想查看本文的实际操作,请观看下面的视频,了解自动化任务计划程序以运行 PowerShell 脚本。
