Automating SharePoint with VBScript
Automating SharePoint with VBScript
You can automate SharePoint Team Services from VBScript using the SOAP web services and the XMLHTTP COM object.
Get All Lists from a Site
' Retrieve all lists from a SharePoint site via SOAP
Dim strURL, strSOAP
strURL = "http://sharepoint.corp.flamenet.io/_vti_bin/Lists.asmx"
strSOAP = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCrLf & _
"<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCrLf & _
" <soap:Body>" & vbCrLf & _
" <GetListCollection xmlns=""http://schemas.microsoft.com/sharepoint/soap/"" />" & vbCrLf & _
" </soap:Body>" & vbCrLf & _
"</soap:Envelope>"
Dim objHTTP
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "POST", strURL, False
objHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objHTTP.setRequestHeader "SOAPAction", _
"http://schemas.microsoft.com/sharepoint/soap/GetListCollection"
objHTTP.Send strSOAP
If objHTTP.Status = 200 Then
Dim objDoc
Set objDoc = CreateObject("MSXML2.DOMDocument")
objDoc.loadXML objHTTP.responseText
Dim objLists
Set objLists = objDoc.getElementsByTagName("List")
Dim i
For i = 0 To objLists.length - 1
WScript.Echo objLists(i).getAttribute("Title") & _
" (Items: " & objLists(i).getAttribute("ItemCount") & ")"
Next
Else
WScript.Echo "Error: " & objHTTP.Status & " " & objHTTP.statusText
End If
Add an Item to a SharePoint List
' Add a new task to the Tasks list via UpdateListItems
Dim strSoapAdd
strSoapAdd = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCrLf & _
"<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCrLf & _
" <soap:Body>" & vbCrLf & _
" <UpdateListItems xmlns=""http://schemas.microsoft.com/sharepoint/soap/"">" & vbCrLf & _
" <listName>Tasks</listName>" & vbCrLf & _
" <updates>" & vbCrLf & _
" <Batch OnError=""Continue"">" & vbCrLf & _
" <Method ID=""1"" Cmd=""New"">" & vbCrLf & _
" <Field Name=""Title"">Deploy Exchange SP3</Field>" & vbCrLf & _
" <Field Name=""Status"">Not Started</Field>" & vbCrLf & _
" <Field Name=""Priority"">(1) High</Field>" & vbCrLf & _
" <Field Name=""DueDate"">2001-12-31</Field>" & vbCrLf & _
" </Method>" & vbCrLf & _
" </Batch>" & vbCrLf & _
" </updates>" & vbCrLf & _
" </UpdateListItems>" & vbCrLf & _
" </soap:Body>" & vbCrLf & _
"</soap:Envelope>"
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "POST", strURL, False
objHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objHTTP.setRequestHeader "SOAPAction", _
"http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"
objHTTP.Send strSoapAdd
If objHTTP.Status = 200 Then
WScript.Echo "Task added successfully."
Else
WScript.Echo "Error: " & objHTTP.Status
End If