Ben Powershell için çok yeni ve öğrenme aşamasında, aşağıdaki görevi otomatikleştirmek için bir komut dosyası oluşturmaya çalıştım. Bu betik beklediğim gibi çalışmıyor. Lütfen gözden geçirebilir ve bana biraz yardım edebilir misiniz? Benim görevdirPowershell Komutu Durdurulduysa Servise Başlamak ve dakika bekleyip bir e-posta bildirimi göndermek için
,
Durdum durumdadır SQL Hizmetleri (birden fazla sunucu birden fazla SQL hizmetlerini) bulmaya çalışıyor ve hizmet başlangıç tamamlamak için bir dakika bekliyorum, bunu başlatmak için çalışıyorum ve servis durumunu tekrar doğrulamak. Hala durdurulursa, bir eylem için insanların kurulumuna bir e-posta göndermeye çalışıyorum.
aşağıdaki kodu inceleyin ve hata düzeltmek misiniz, bunu bulmaya çalıştı ama#Define servers & Services Variables
$Servers = GC "E:\Bhanu\SQLServer.txt"
$Services = GC "E:\Bhanu\SQLService.txt"
#Function Call
Function ServiceStatus ($Servers, $Services)
{
foreach ($Server in $Servers)
{
foreach ($Service in $Services)
{
$Servicestatus = get-service -ComputerName $Server -Name $Service
if ($Servicestatus.Status -eq "Stopped")
{
Start-service $Service
Start-Sleep -Seconds 60
$ServiceStatus1 = Get-Service -ComputerName $Server -Name $Service
if ($Servicestatus1.Status -eq "Stopped")
{
FuncMail -To “[email protected]” -From “[email protected]” -Subject $Server + $Service "fails to Start, Take immediate Action to avoid Impact” -Body $ServiceName "Service fails to Start, Take immediate Action to avoid Impact” -smtpServer “servername”
}
}
}
}
}
function FuncMail
{
#param($strTo, $strFrom, $strSubject, $strBody, $smtpServer)
param($To, $From, $Subject, $Body, $smtpServer)
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = $From
$msg.To.Add($To)
$msg.Subject = $Subject
$msg.IsBodyHtml = 1
$msg.Body = $Body
$smtp.Send($msg)
}
servicestatus $ Sunucular, $ Hizmetleri yapamadığını
burada şeye ihtiyacın olursa bana bildirin benim son
serviceStatus işlevini tanımladınız ancak hiçbir zaman bir çağrı yapmadınız –
Beklediğiniz gibi davranmadığını bize söylemediniz mi? – Nanhydrin
Burada meydana gelen bir hata olup olmadığı hakkında daha fazla bilgiye mi ihtiyacınız var. Ayrıca, zaten mevcut olan bir 'Send-MailMessage' cmdlet'i olduğunda FuncMail işlevinize gerek yoktur. – boeprox