我编写了一个 VBScript,当用户登录到机器时发送邮件:
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Example CDO Message"
objMessage.From = "admin@domain.com"
objMessage.To = "admin@domain.com"
Set objNet = CreateObject("WScript.NetWork")
strInfo1 = " " & objNet.UserName & "@" & objNet.UserDomain & " is logged on to machine: " & objNet.ComputerName & " on " & Date() & " " & Time() & "." & vbCRLF
objMessage.TextBody = " " & strInfo1
'specify mechanism to send mail -2 for using port
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'specifying exchange server machine as smtp server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "exchangeserver.domain.com"
'port for SMTP server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'end message configuration
objMessage.Configuration.Fields.Update
objMessage.Send
我已通过创建事件任务调度程序指定此 vbs 在远程登录会话上执行,如下所示
我已将其配置为为任何用户的远程登录执行它:
在上面的窗口上单击“确定”后,我得到下面的窗口,要求用户帐户用于此任务:
但是我只有在我在上面的窗口中指定的用户远程登录后才会收到邮件,即使我已经指定为任何用户执行事件,如第二张图片所示。
Q.1如何在任何用户登录时自动发送邮件,为什么它只在我在第三张图片中指定的一个用户登录时发送邮件
Q.2我也发现这种方式不安全,因为它是在我想要监控远程登录的机器上配置的。这台机器在由 Windows Server 2008 管理的 AD 中。当在客户端机器上发生远程登录时,如何在服务器(而不是客户端机器)上进行配置以发送邮件。