我有一个PowerShell脚本,在它关闭时会重新启动我们的SMTP服务。它看起来像这样:
$Computer = "localhost"
$SMTPServiceName = "SMTPSVC"
$AllServices = get-service -ComputerName $Computer
$SMTPService
foreach ($Service in $AllServices)
{
if ($Service.name -eq $SMTPServiceName)
{
$SMTPService = $Service
break
}
}
if ($SMTPService.status -eq "StopPending")
{
write-host "Service" $SMTPService "is pending stop. Attempting to stop and restart."
$servicePID = (gwmi win32_Service | where {$_.Name -eq $SMTPServiceName}).ProcessID
Stop-Process $ServicePID
Start-Service -InputObject (get-Service -ComputerName $Computer -Name $SMTPServiceName)
write-host "Service" $SMTPService "restarted."
}
elseif ($SMTPService.status -eq "Paused")
{
write-host "Service" $SMTPService "is paused. Attempting to resume."
Resume-Service -InputObject (get-Service -ComputerName $Computer -Name $SMTPServiceName)
write-host "Service" $SMTPService "resumed."
}
elseif ($SMTPService.status -eq "Stopped")
{
write-host "Service" $SMTPService "is stopped. Attempting to restart."
Start-Service -InputObject (get-Service -ComputerName $Computer -Name $SMTPServiceName)
write-host "Service" $SMTPService "restarted."
}
else
{
write-host "Service" $SMTPService "is running."
}
我已经确认这是有效的。我关闭SMTP服务,运行脚本,然后SMTP服务重新启动并运行。
我为任务计划程序创建了一个.bat文件来运行。它看起来像这样:
cd "C:\Scripts\" & powershell.exe C:\Scripts\restart-smtp.ps1
我已经确认这是有效的。我关闭SMTP服务,运行批处理文件,SMTP服务已备份并运行。
现在我想让Task Scheduler每5分钟运行一次。我设置任务,将其指向批处理文件,但它不起作用。我想知道是否有人可以帮我解决这个问题。
我得到的唯一错误是:
操作员或管理员拒绝了该请求。 (0x800710E0)
我告诉它以我登录的同一管理员身份运行,与从PowerShell提示符运行脚本和批处理文件的管理员相同。
以下是我的任务设置:
您可能注意到的一件事是历史记录被禁用。我想知道如果启用了历史记录中是否会显示错误日志,但我不确定如何启用它。
这是在Windows Server 2016上运行。