【发布时间】:2019-01-01 01:09:28
【问题描述】:
我是 VBS 脚本的新手,但我准备了一个来监控 Dynamics AOS 服务。
while ((Get-Service -name "AOS60*").status -eq "Running")
{Start-Sleep -s 30}
Send-MailMessage -From AOSmonitor@abc.com -To hub.pia@abc.com -Body "AOS Stopped" -Subject "AOS3 stopped" -SmtpServer 89.216.216.116
当我将它粘贴到 PowerShell 并收到一封电子邮件时,它工作正常,但是当我将它保存到文件 aos.vbs 并尝试运行它时。
知道我做错了什么吗?
当我尝试在任务计划程序(基本任务,一次)中运行此脚本时,它保持在运行状态并且没有发送电子邮件。
【问题讨论】:
-
vbs 和 powershell 不是一回事,这里有一个 powershell 脚本,因此它可以与 powershell 一起使用,而不是
cscript。 -
只是一个简单的问题。您想从 VB 运行 Powershell 脚本而不只是运行 Powershell script directly as a task 的任何原因?
-
@TheIncorrigible1 OP 说:
It works fine when I paste it into Powershell and I get an email, but when I save it into file aos.vbs and try to run it。请仔细阅读问题 -
@arco444 呸,好收获。这么说就很明显了
-
有更好的方法来完成你正在做的事情。每 30 秒检查一次服务是否仍在运行是愚蠢的。寻找
EventId=7036并在任务计划程序中设置一个触发器来监控它。您可以使用这样的自定义任务计划程序查询<QueryList><Query Id="0" Path="System"><Select Path="System">*[System[(Level=4 or Level=0) and (EventID=7036)]] and *[EventData[Data[@Name='param1'] and (Data='Microsoft Dynamics AX Object Server 6.3$01-Your_AOS_ServiceName')]] and *[EventData[Data[@Name='param2'] and (Data='running' or Data='stopped')]]</Select></Query></QueryList>
标签: powershell vbscript scheduled-tasks dynamics-ax-2012