邮件仅在特定用户而非所有用户的远程登录时发送到计算机

时间:2013-10-17 16:04:13

标签: windows email vbscript windows-server-2008 windows-administration

我写了一个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通过create event task scheduler在远程登录会话上执行,如下所示

enter image description here

我已将其配置为执行任何用户的远程登录:

enter image description here

在上面的窗口中单击“确定”后,我在下面的窗口中询问用于此任务的用户帐户:

enter image description here

但是我在远程登录我在上面窗口中指定的用户后才收到邮件,即使我已经指定为第二张图片中的任何用户执行该事件。

Q.1 如何在任何用户的用户登录时自动发送邮件,为什么只在我第三张图片中指定的一个用户登录时发送邮件

Q.2 此外,我发现这种方式不安全,因为它是在我要监视远程登录的计算机上配置的。本机由Windows Server 2008管理。在客户端计算机上进行远程登录时,如何在服务器(而非客户端计算机)上进行配置以发送邮件。

1 个答案:

答案 0 :(得分:0)

事实上,您在使用登录后发送邮件。但是,正如

  1. 计划任务在特定用户的凭据下运行,

  2. 您的脚本获取运行脚本的会话的用户名,

  3. 此会话是任务计划程序中配置的会话,

  4. 这是您的特定用户,

  5. ......你能看到吗?脚本不能。它没有看到真正的用户。

    最好的选择可能是配置一个登录脚本,该脚本在真实用户帐户下运行,并从中调用脚本。

    或者您可以在安全事件日志中启用审核并记录登录事件。然后你可以分析日志。