~siggi-bjarnason/siggivbscript/vbscript

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