.vbs文件和任务计划程序中的获取服务

时间:2018-07-24 12:03:45

标签: powershell vbscript scheduled-tasks dynamics-ax-2012

我是VBS脚本的新手,但是我准备监视动态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中并尝试运行它时,就可以正常工作。

PS C:\> cscript aosMon.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

C:\aosMon.vbs(1, 9) Microsoft VBScript compilation error: Syntax error

知道我做错了什么吗?

以类似的方式,当我尝试在Task Scheduler(基本任务,一次)中运行此脚本时,它停留在“运行”状态,并且没有发送电子邮件。

enter image description here

1 个答案:

答案 0 :(得分:0)

PowerShell文件扩展名为.ps1,应使用编码UTF8-bom保存。 vbs是Visual Basic脚本的缩写,它在任何方面都不是PowerShell的同义词。您应该能够将内容保存到filename.ps1文件中,并直接从调度程序运行它。

filename.ps1

do {
    Start-Sleep -Seconds 30
} while ((Get-Service -Name 'AOS60*').Status -eq 'Running')

$mailArgs = @{
    From       = 'AOSmonitor@abc.com'
    To         = 'hub.pia@abc.com'
    Subject    = 'AOS3 stopped'
    Body       = 'AOS Stopped'
    SmtpServer = '89.216.216.116'
}
Send-MailMessage @mailArgs

从这里,您可以设置计划的任务。在Action中:

Program/script:

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe

Add arguments (optional):

-NoProfile -NonInteractive -File "PATH\TO\filename.ps1"

脚注:如果您遇到执行政策问题,可以添加

-ExecutionPolicy Bypass

-File之前的参数)可以解决该问题。