Как удалить компьютер в AD и по электронной почте компьютеры, которые были удалены для себя - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь удалить список машин из AD, которые находятся в текстовом файле.У меня нет проблем с их удалением.Однако, как только они будут удалены, я хочу, чтобы PowerShell отправил по электронной почте моей группе сообщение о том, что эти машины были удалены из AD.Кто-нибудь может помочь?

Я пытался Если, попробуйте, и заявления, но, кажется, не может заставить его работать.

Get-Content 'c:\temp\Remove AD Computers.txt' | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive -Whatif

$Computerlist = Get-Content 'c:\temp\Remove AD Computers.txt'

ForEach($Computer in $Computerlist)
{ 
   try{
        Get-ADComputer $Computer -ErrorAction Stop
        $output = "$Computer still exsists in AD."
}
   catch{
   $output = "$Computer has been removed from AD." 
}
}
Write-Host $output

Send-MailMessage -From 'ADComputersRemoved@redgold.com' -To 'support@redgold.com' -Subject 'AD Computers removed' -Body "$output" -SmtpServer smtp.domain.com

Мне нужно это, чтобы удалить компьютер, а затем отправить мне по электронной почте результаты удаления.Надеюсь, это достаточно информации.Любая помощь будет фантастической.

1 Ответ

0 голосов
/ 10 апреля 2019

Если вы измените цикл foreach, как показано ниже, у вас будут все компьютеры в списке.Каждая итерация цикла добавит индексированный элемент в массив $output со значением одной из двух ваших строк.

$output = ForEach($Computer in $Computerlist)
{ 
   try{
        Get-ADComputer $Computer -ErrorAction Stop
        "$Computer still exsists in AD."
}
   catch{
   "$Computer has been removed from AD." 
}
}

Поскольку $output будет массивом строк, вам необходимо сделать этострока, когда вы передаете ее в параметр -body Send-MailMessage.Я использовал оператор -join с символами CRLF.Вы можете использовать все, что вам нравится.$output | out-string совершит нечто подобное.

Send-MailMessage -From 'ADComputersRemoved@redgold.com' -To 'support@redgold.com' -Subject 'AD Computers removed' -Body ($output -join "`r`n") -SmtpServer smtp.redgold.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...