-4
このスクリプトを使用して、なぜ動作しないのか説明できません。私はと困り抱えている 部分があれば文Powershellスクリプトは、サービスが実行中であるかどうかを確認し、停止してから再開します。
var start
$email = "<Email1>, Email2"
$Service = Get-Content -Path C:\temp\TextFile.txt
Get-Content C:\temp\TextFile.txt | Where-Object {$_ -match $regex} |
ForEach-Object {
var end
function FuncCheckService
{
param($Service)
$arrService = Get-Service | #vvvv this is where im having truble
Where { $Service -contains $_.Name} | foreach {
if ($Service.Status -eq “Running”){
}
if ($Service.Status -ne “Running”){
Stop-Service $Service
# Wait for 20 seconds before starting the service
Start-Service $Service
FuncMail -To $email -From “$env:[email protected]” -Subject
“SERVERNAME $env:COMPUTERNAME : Services not started.” -Body “Service $regex
started” -smtpServer “SMTP Ip here”
}
}
}
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)
}
FuncCheckService $Service
}
私はすべてのアイデアを開いているbefour「foreachの」一部です。
機能していませんか?より具体的にする必要があります。 – Raziel
2番目のforeach – Shubub
@Shububどのように2番目のループは機能しませんか? – gvee