Powershell脚本定期搜索容器并将结果发送到管理员邮件

2011年5月23日 | 分类: Windows, 脚本 | 标签: , ,

      我们计算机账户不放在默认的Computers容器中,放在指定的容器中,这样做组策略可以和服务器计算机账户分开。我这个脚本是和任务计划结合,定期搜索Computers容器,如果有新的计算机账户责发邮件通知我:(邮件服务器开启匿名发送功能)

$strFilter = “(&(objectCategory=Computer))”

$Mailfrom=”admin@domain.com”
$Mailto=”an6097@domain.com”
$smtp = New-Object System.Net.Mail.SmtpClient
$smtp.Host = “Exchange Server IP Address”

#$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objOU = New-Object System.DirectoryServices.DirectoryEntry(“LDAP://cn=Computers,dc=domain,dc=corp”)

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objOU
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = “Subtree”

$colProplist = “name”
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}

$colResults = $objSearcher.FindAll()

foreach ($objResult in $colResults)
{
$objItem = $objResult.Properties
$name = $name + $objItem.name + “,”
}

if($objItem.name)
{
$mailmessage = New-Object system.net.mail.mailmessage
$mailmessage.from = $Mailfrom
$mailmessage.To.add($Mailto)
$mailmessage.Subject = “有新的机器加域”
$mailmessage.Priority  = “High”    #加急
$mailmessage.Body = “<span style=’font-size:11.0pt;font-family:宋体’>您好:<p>&nbsp;&nbsp;有新的计算机”+$name+”加入到域,请把计算机帐户移动到相应的容器。<p>”
$mailmessage.IsBodyHTML = $true
$smtp.Send($mailmessage)
}

Written by an6097

  1. gavin
    2013年6月25日17:44

    good

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。