本篇将介绍如何使用PowerShell来实现查看多个文件夹下的特定文件,
从而检测文件的上次的更改时间,如果更改时间超多X天,自动发送email到指定的地址
这个功能可以使用在运维工程师手动核实文件上次更改时间或类似的工作当中。
利用自动化,来减少维护成本。
以下代码适用于PowerShell 2.0以上版本
$Now = Get-Date
$Days = "1"
$LastWrite = $Now.AddDays(-$Days)
$Contents = ""
$FilePaths = @(
"Filepath1",
"Filepath2",
"Filepath3",
"Filepath4",
"Filepath5",
"Filepath6",
"Filepath7"
)
foreach ($FilePath in $FilePaths)
{
$AEXFiles = Get-ChildItem -Recurse $FilePath | where {$_.Extension -eq ".aes"}
foreach ($AEXFile in $AEXFiles)
{
if ($AEXFile.LastWriteTime -le $LastWrite)
{
$DateStr = $AEXFile.LastWriteTime -f "yyyy-MM-dd HH:mm:ss"
$Contents += "$FilePath $AEXFile $DateStr`n"
}
}
}
if($Contents)
{
echo $Contents
}
else
{
Send-MailMessage -smtpserver 127.0.0.1 -from "sender address" -to "receiver address" -Subject "Test" -body "Test for Send-MailMessage"
}