.vbs 文件和任务计划程序中的获取服务
Get-Service in .vbs file and Task Scheduler
我对 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
并尝试 运行 它时。
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
知道我哪里做错了吗?
当我在任务计划程序(基本任务,一次)中尝试 运行 这个脚本时,它会保持类似的方式 运行 并且没有发送电子邮件。
PowerShell 文件扩展名为 .ps1
,应使用 UTF8-bom
编码保存。 vbs
是 visual basic script 的缩写,它 而不是 在任何方面都是 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
之前)来解决这个问题。
我对 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
并尝试 运行 它时。
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
知道我哪里做错了吗?
当我在任务计划程序(基本任务,一次)中尝试 运行 这个脚本时,它会保持类似的方式 运行 并且没有发送电子邮件。
PowerShell 文件扩展名为 .ps1
,应使用 UTF8-bom
编码保存。 vbs
是 visual basic script 的缩写,它 而不是 在任何方面都是 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
之前)来解决这个问题。