VBS区分本地帐户密码到期的电子邮件提醒
最近企业在外网发布的一个文件服务器(FTP)被***,上面的文件全部被改,无法正常应用。然后,最重要的事情是在里面放一个指示,说如果文件的应用必须被取消,必须支付一个帐户破译的费用。但是最后大家还是没有按照提醒支付取消文件的实际 *** 作费用,找了一些电脑杀毒软件但是还是没能破译。最后我们放弃了,根据备份数据的数据信息开始恢复。这个恶性事件的关键点在于,我们日常生活中放的外网地址服务器,必须时刻更改密码。由于外网地址服务器没有域管理方法,我们只能获取本地账号的信息,然后根据vbs脚本获取账号信息。本地策略密码的最大应用周期时间为30天,以提醒管理人员及时进行更改,提高服务器的安全系数。以下是本次实际 *** 作的脚本信息,用于必要的学习和培训。
在某些情况下,本地账户信息的特征会将密码设置为永不过期,所以大家也会根据脚本来区分。使用系统软件的任务计划来定义执行脚本,从而达到最终的脚本执行结果。其实,看下面:
最后,我们将根据以下文件格式进行邮件提醒。
编码开始:
Dim getd getd = datediffn sendmail GetIP,getd Function datediffn() Dim ws dim rt dim rtarr Dim lastset Dim enddate set ws = createobject("wscript.shell") rt = ws.exec("net user administrator").StdOut.ReadAll rtarr = split(rt,vbcrlf) for i=0 to ubound(rtarr) If Mid(rtarr(i),1,3)="之前设" then 'if mid(rtarr(i),1,10)="Password l" Then lastset = Mid(rtarr(i),InStr(rtarr(i),"20"),Len(rtarr(i))) 'WScript.Echo lastset end If If Mid(rtarr(i),1,3)="密码到" then 'If mid(rtarr(i),1,10)="Password e" Then If InStr(rtarr(i),"20") <> 0 then enddate = Mid(rtarr(i),InStr(rtarr(i),"20"),Len(rtarr(i))) If DateDiff("d",lastset,enddate) <=66 Then 'datediffn = 5 datediffn = datediff("d",lastset,enddate) ElseIf DateDiff("d",lastset,enddate) >=365 then datediffn = "never" End If 'WScript.Echo enddate Else datediffn = "never" End if end if Next End function Function sendmail(ip,dat) Dim ns,eo Dim password Dim stmp Dim fromName Dim Toname Dim msg1 Dim msg2 Dim msg Dim users fromName = "gavin@ixmsoft.com" '发货人 Toname = "gaowenlong@ixmsoft.com" '收货人 stmp = "smtp.ixmsoft.com" 'stmp 服务器详细地址 users = "gavin" password = "Password2016" '发货人密码 msg1 = "<html> <body bgcolor='wheat'>" & VbCrLf & _ "<h2><font color = 'red'>管理人员账户密码到期提醒:</font></h2>" & vbCrLf & _ ""& vbCrLf & vbCrLf & _ "<br/><font color='blue' size = 4>服务器IP地址为:</font><b><font color='red' size = 6>"&ip&"</font></b><font color='blue' size = 4>的管理人员账户(Administrator)将在</font><b><font color='red' size = 6>"&dat&"</font></b><font color='blue' size = 4>天到期,请登陆后立即改动;</font>" & vbCRLF & _ ""& vbCrLf & vbCrLf & _ "</br>" & _ "<br/><font color='green' size = 5>帐号管理管理中心</font>" & _ "</body>" & VbCrLf & _ "</html>" msg2 = "<html> <body bgcolor='wheat'>" & VbCrLf & _ "<h2><font color = 'red'>管理人员账户密码到期提醒:</font></h2>" & vbCrLf & _ ""& vbCrLf & vbCrLf & _ "<br/><b><font size =6 color='red'>Warning:</font></b><font color='blue' size = 4>服务器IP地址为:</font><b><font color='red' size = 6>"&ip&"</font></b><font color='blue' size = 4>的管理人员账户(Administrator)特性设定</font><b><font color='red' size = 6>密码绝不到期</font></b><font color='blue' size = 4>,为了更好地确保账户安全性,请登陆后撤消客户特性选择项""密码绝不到期"";</font>" & vbCRLF & _ ""& vbCrLf & vbCrLf & _ "</br>" & _ "<br/><b><font size=4 color = 'red'>Note:</font></b><font color='blue'>本地组策略默认设置账户密码最多应用周期时间为42天,另外密码开启复杂性.</font>"& vbCrLf & _ ""& vbCrLf & vbCrLf & _ "</br>" & _ "</br>" & _ "</br>" & _ "</br>" & _ "<br/><font color='green' size = 5>帐号管理管理中心</font>" & _ "</body>" & VbCrLf & _ "</html>" If dat="never" Then msg = msg2 Else msg = msg1 End if Set eo = CreateObject("CDO.Message") ns = "http://schemas.microsoft.com/cdo/configuration/" eo.From = fromName eo.To =Toname eo.Subject = "管理人员账户密码到期提醒" eo.Textbody = text eo.HTMLBody = msg With eo.Configuration.Fields .Item(ns&"sendusing") = 2 .Item(ns&"smtpserver") = stmp .Item(ns&"smtpserverport") = 25 .Item(ns&"smtpauthenticate") = 1 .Item(ns&"sendusername") = users .Item(ns&"sendpassword") = password .Update End With eo.Send End Function '获得该设备IP 'owner DeViL 'return 该设备的IP地址 Public Function GetIP ComputerName="." Dim objWMIService,colItems,objItem,objAddress Set objWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True") For Each objItem in colItems For Each objAddress in objItem.IPAddress If objAddress <> "" then GetIP = objAddress Exit Function End If Next Next End Function根据两个标准,我们可以区分如果客户的密码还有多少天就要到期了,我们会向特定的客户发送提醒邮件。
如果打开了客户功能,并且密码永不过期,还会出现电子邮件提醒。
每个人根据任务计划开发并实现脚本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)