1
by Siggi Bjarnason
initial add |
1 |
Option Explicit |
2 |
Dim cn,rs, fld, outstr, cmdtext, ticketid, updatecmd |
|
3 |
||
4 |
Const MailServerName = "tk2smtp.phx.gbl" |
|
5 |
Const SMTPTimeout = 30 |
|
6 |
Const FromAddress = """GNS Infrastructure Operation"" <gnsops@phx.gbl>" |
|
7 |
Const ToAddress = """GNS Problem Management"" <netpro@microsoft.com>" |
|
8 |
'Const ToAddress = """Siggi Bjarnason"" <siggib@microsoft.com>"
|
|
9 |
Const CCAddress = """Linn Comptom"" <linnco@microsoft.com>" |
|
10 |
Const Subject = "Password and/or snmp string needs to be changed" |
|
11 |
Const cdoSendUsingPort = 2 |
|
12 |
Const cdoNTLM = 2 |
|
13 |
||
14 |
Const DBServer = "by2netsql01" |
|
15 |
||
16 |
Const teamname = "GNS Problem Management" |
|
17 |
Const strurl = "http://ppexmlinterface/Post/Ticket_Update.asp" |
|
18 |
||
19 |
'cmdText = "select vcType, dtUpdate, imaxage from cmdb.dbo.pwdchanged where dtnotified is null"
|
|
20 |
cmdText = "select vcType, dtUpdate, imaxage from cmdb.dbo.pwdchanged" |
|
21 |
Set cn = CreateObject("ADODB.Connection") |
|
22 |
Set rs = CreateObject("ADODB.Recordset") |
|
23 |
||
24 |
cn.Provider = "sqloledb" |
|
25 |
cn.Properties("Data Source").Value = DBServer |
|
26 |
cn.Properties("Integrated Security").Value = "SSPI" |
|
27 |
wscript.echo "Attempting to open Connection" |
|
28 |
cn.open |
|
29 |
wscript.echo "attempting to execute query" |
|
30 |
rs.Open cmdText, cn |
|
31 |
wscript.echo "got recordset, analyzing..." |
|
32 |
outstr = "" |
|
33 |
While not rs.eof |
|
34 |
'wscript.echo rs.fields(0).value & vbtab & rs.fields(1).value & vbtab & rs.fields(2).value |
|
35 |
If DateAdd("m",rs.fields(2).value -1,rs.fields(1).value) < Now() Then |
|
36 |
outstr = outstr & rs.fields(0).value & " needs to be changed by " & DateAdd("m",rs.fields(2).value,rs.fields(1).value)& vbcrlf |
|
37 |
updatecmd = Updatecmd & "Update cmdb.dbo.pwdchanged set dtUpdate = getdate() where vcType ='" & rs.fields(0) & "'" & vbcrlf |
|
38 |
End If |
|
39 |
rs.movenext |
|
40 |
Wend
|
|
41 |
rs.close |
|
42 |
||
43 |
If outstr = "" Then |
|
44 |
wscript.echo "everything is good" |
|
45 |
Else
|
|
46 |
wscript.echo "cuting a UTS ticket for remediation" |
|
47 |
ticketid = createticket(teamname,subject,outstr,strurl) |
|
48 |
If IsNumeric(ticketid) Then |
|
49 |
outstr = outstr & vbcrlf & "Ticket " & ticketid & " has been cut to " & teamname & " for this." |
|
50 |
Else |
|
51 |
outstr = outstr & vbcrlf & "Failed to create a ticket or get the ticket number. " & ticketnumber |
|
52 |
End If |
|
53 |
wscript.echo outstr |
|
54 |
mysendmail subject,outstr |
|
55 |
wscript.echo "Mail sent" |
|
56 |
rs.Open updatecmd, cn |
|
57 |
End If |
|
58 |
||
59 |
Set rs=nothing |
|
60 |
cn.close |
|
61 |
Set cn=Nothing |
|
62 |
||
63 |
Sub MySendMail(StrSubject,msg) |
|
64 |
Dim iMsg,iConf,Flds |
|
65 |
|
|
66 |
Set iMsg = CreateObject("CDO.Message") |
|
67 |
Set iConf = CreateObject("CDO.Configuration") |
|
68 |
Set Flds = iConf.Fields |
|
69 |
|
|
70 |
With Flds |
|
71 |
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort |
|
72 |
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = MailServerName |
|
73 |
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = SMTPTimeout |
|
74 |
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")= cdoNTLM |
|
75 |
.Update |
|
76 |
End With |
|
77 |
|
|
78 |
With iMsg |
|
79 |
Set .Configuration = iConf |
|
80 |
.To = ToAddress |
|
81 |
.CC = CCAddress |
|
82 |
.From = FromAddress |
|
83 |
.Subject = StrSubject |
|
84 |
.textbody = Msg |
|
85 |
.Send |
|
86 |
End With |
|
87 |
End Sub |
|
88 |
||
89 |
Function CreateTicket (teamname, subject, strmsg, strurl) |
|
90 |
Dim ticketid, oPoster, strData, xmlOK, objDocument, errind |
|
91 |
Dim statuscode, statusdesc, errorcnt, stroutput, messagedesc, ErrorNum, rootNode, childNode |
|
92 |
||
93 |
strdata = "<?xml version=""1.0"" ?> <XMLFILE UserLogName=""gnsops"" FileId=""TicketCreate"" Action=""Add"">" |
|
94 |
strdata = strdata & "<TICKET AssignedToTeamName=""" & TeamName |
|
95 |
strdata = strdata & """ ClientImpactInd=""No"" CloseControlInd=""No"" PropertyName=""Network"" TicketDesc=""" & strmsg |
|
96 |
strdata = strdata & """ TicketPriority=""2:Med"" TicketProblemType=""Request"" TicketTitle=""" & subject |
|
97 |
strdata = strdata & """ TicketType=""Request""></TICKET></XMLFILE>" |
|
98 |
|
|
99 |
Set objDocument = CreateObject("msxml2.DOMDocument") |
|
100 |
Set oPoster = CreateObject("Microsoft.XMLHTTP") |
|
101 |
oPoster.Open "POST", strURL, 0 |
|
102 |
oPoster.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" |
|
103 |
oPoster.Send strData |
|
104 |
|
|
105 |
If oPoster.responseXML.xml <> "" Then |
|
106 |
strData = oPoster.responseXML.xml |
|
107 |
objDocument.async = False |
|
108 |
xmlOK = objDocument.loadXML(strData) |
|
109 |
If xmlOK Then 'XML load success |
|
110 |
Set rootNode = objDocument.documentElement |
|
111 |
For Each childNode in rootNode.childNodes |
|
112 |
If childNode.nodeName = "XMLLogDetail" Then |
|
113 |
ErrorNum = childNode.getAttribute("ErrorNum") |
|
114 |
If Not IsNull(ErrorNum) Then |
|
115 |
ticketid = "Return status " & oposter.status & " Error# " & errornum & " occured. " & childNode.getAttribute("ErrorDesc") |
|
116 |
Else |
|
117 |
errind = childNode.getAttribute("HasErrorInd") |
|
118 |
If errind = 1 Then |
|
119 |
ticketid = childNode.getAttribute("MessageDesc") |
|
120 |
Else |
|
121 |
ticketid = childnode.getattribute("TicketId") |
|
122 |
End If |
|
123 |
End If |
|
124 |
End If |
|
125 |
Next |
|
126 |
Else |
|
127 |
ticketid = "Failed to load XML response." |
|
128 |
End If |
|
129 |
Else |
|
130 |
ticketid = oPoster.responseText |
|
131 |
End If |
|
132 |
createticket = ticketid |
|
133 |
End Function |