I wanted to get a list’s contents in a SharePoint 2007 site via PowerShell. I ran into only one issue – how to handle the pagination. When creating the Xml to include the next page, I was running into formatting issues because the text contained a “=”. This link suggested that I create the XML element first then add the innerText after. Worked after that!
TheBelow is my script to get the contents of a SharePoint 2007 list.
$listName = "List Name" $xmlDoc = new-object System.Xml.XmlDocument $query = $xmlDoc.CreateElement("Query") $viewFields = $xmlDoc.CreateElement("ViewFields") $queryOptions = $xmlDoc.CreateElement("QueryOptions") $rowLimit = "50" $service = New-WebServiceProxy -UseDefaultCredential -uri http://sharepoint2007.comapny.com/_vti_bin/lists.asmx?WSDL $nextPage=$true while($nextPage){ $list = $service.GetListItems($listName, "", $query, $viewFields, $rowLimit, $queryOptions, "") $list.data.row | select ows_ID,ows_Created,ows_Title if ($list.data.ListItemCollectionPositionNext){ $nextPage=@" <Paging ListItemCollectionPositionNext="" /> "@ $queryOptions.set_InnerXml($nextPage) $queryOptions.ChildNodes[0].Attributes["ListItemCollectionPositionNext"].InnerText = "$($list.data.ListItemCollectionPositionNext)" } else { write-host "done" $nextPage=$false } }