首页 > 解决方案 > Powershell - 扫描 DC 寻找新服务器 + 如果特定服务正在其上运行

问题描述

我的脚本正在扫描我的 DC 以查找已添加到我的域的新服务器 + 发送一封包含新服务器名称、IP 和操作系统的电子邮件。

我在看什么,我如何在这个脚本中添加一行来检查这些新服务器上是否运行了特定的服务?

我现在收到的电子邮件输出是:

Dear IT Team,
Weekly AD  scan for new servers:

Name    IPv4Address OperatingSystem
test x.x.x.x   Windows Server 2016 Standard

所以我想以某种方式在这里添加一个“服务”选项卡,在这些服务器中显示“服务名称”是否正在运行。

剧本:

#>
"Start: "+ (Get-Date)
try
{
$domain=""
if ($domain -eq"")
{
        $domain = Get-ADDomain
}
else
{
        $domain = Get-ADDomain -Identity $domain
}
$domain_name=$domain.name
$distinguished_name = $domain.DistinguishedName
$domain_controller = (Get-ADDomainController -server $domain_name).HostName
$logging_level=1
$search_base = "OU=my-ous," + $distinguished_name
$days_to_search  =-300             # this value needs to be negative integer
if ($days_to_search -ge 0) {throw "Value for variable $days_to_search must be a negative integer in days."}
$date_filter = (get-date).adddays($days_to_search)
$computers=get-adcomputer -SearchBase  $search_base -Properties * -Filter {Created -gt $date_filter -and operatingsystem -like "*windows*"} -server $domain_controller
$computers | Select-Object Name, Created,DistinguishedName,IPv4Address,OperatingSystem | ft -AutoSize

}
Catch
{
    "Error occurred: " + (Get-Date)
    throw
}
$Body = @"
    <html>
        <body>
            <p>Dear Team,
            <br/>
            <p>Weekly  scan for new servers:</p>
            $($computers | ConvertTo-Html -Property Name,IPv4Address,OperatingSystem)
            <br/> 
        </body>
    </html>
"@
Send-MailMessage -To "myemail@test.com" -From 'do_not_reply@test.com' -Subject 'New Servers' -Body $Body -SmtpServer 'mysmtp server' -BodyAsHtml -Priority High

标签: powershellscriptingactive-directory

解决方案


推荐阅读