gpt4 book ai didi

windows - vbs 脚本 - 帮助添加要在电子邮件正文中使用的标准输出

转载 作者:可可西里 更新时间:2023-11-01 10:39:32 32 4
gpt4 key购买 nike

寻求帮助设置此 vbs 脚本的输出并将其用作电子邮件正文中的文本。我添加了一个用于发送电子邮件的子程序。我现在需要帮助的是从脚本执行中捕获标准输出并将其包含在电子邮件正文中。

代码:

'Declare Variables
Dim objWMIService, objProcess, colProcess, Status, strComputer, strService, objMessage

'Assign Arguments
strComputer = WScript.Arguments(0)
strService = WScript.Arguments(1)
Status= false

'Check For Arguments - Quit If None Found
If Len(strService) < 1 Then
Wscript.echo "No Arguments Entered - Exiting Script"
WScript.Quit
End If

'Setup WMI Objects
Set objWMIService = GetObject("winmgmts:"& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery ("SELECT DisplayName, Status, State FROM Win32_Service WHERE DisplayName = '" & strService & "'")

'Send Alerts
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Alert Notice"
objMessage.From = "myalerts@myalerts.com"
objMessage.To = "test@myalerts.com"
objMessage.TextBody = "Place holder for alerts. Capture stdout here and send as part of msg"
objMessage.Send

'Check For Running Service
For Each objProcess in colProcess
If InStr(objProcess.DisplayName,strService) > 0 And objProcess.State = "Running" Then
Status = true
End If
Next

If Status = true Then
Wscript.echo "Service: " & UCase(strComputer) & " " & strService & " Running"
'Perform Some Pass Logic Here
Else
Wscript.echo "Service: " & UCase(strComputer) & " " & strService & " Not Running"
'Send Alerts
End If

最佳答案

不是使用 Echo 输出数据,而是将其设置为一个字符串变量或一系列字符串变量,然后在最后发送电子邮件。

'Declare Variables
Dim objWMIService, objProcess, colProcess, Status, strComputer, strService, objMessage
dim alert_body

'Assign Arguments
strComputer = WScript.Arguments(0)
strService = WScript.Arguments(1)
Status= false

'Check For Arguments - Quit If None Found
If Len(strService) < 1 Then
Wscript.echo "No Arguments Entered - Exiting Script"
WScript.Quit
End If

'Setup WMI Objects
Set objWMIService = GetObject("winmgmts:"& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery ("SELECT DisplayName, Status, State FROM Win32_Service WHERE DisplayName = '" & strService & "'")

'Check For Running Service
For Each objProcess in colProcess
If InStr(objProcess.DisplayName,strService) > 0 And objProcess.State = "Running" Then
Status = true
End If
Next

If Status = true Then
Wscript.echo "Service: " & UCase(strComputer) & " " & strService & " Running"
'Perform Some Pass Logic Here
Else
'Wscript.echo "Service: " & UCase(strComputer) & " " & strService & " Not Running"
alert_body = "Service: " & UCase(strComputer) & " " & strService & " Not Running"
'Send Alerts
End If

'Send Alerts
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Alert Notice"
objMessage.From = "myalerts@myalerts.com"
objMessage.To = "test@myalerts.com"
objMessage.TextBody = alert_body
objMessage.Send

假设 else 情况是您希望根据您的评论发送警报的唯一时间。如果您想向主体添加更多内容,请使用该变量并附加到它,或者使用多个变量并将它们全部标记到该 TextBody 对象上。

关于windows - vbs 脚本 - 帮助添加要在电子邮件正文中使用的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6920853/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com