In this article you will see how to get all the items from a particular list
using SharePoint 2010 web service in PowerShell.
List Items
I have a list named "List" which contains the following items
In this you will see how to get all the items from the list "List" using
SharePoint 2010 web service in PowerShell.
Steps Involved
- Open SharePoint 2010 Management Shell by
going to Start | All Programs | SharePoint | Microsoft SharePoint 2010
Products | SharePoint 2010 Management Shell (Run as Administrator).
- Run the following script.
PowerShell Script
##==============================================================================
## Automation : Get all the list items for a particular list using SharePoint
2010 Web Service in PowerShell
## Note : Need to modify the input parameters
## Author : Vijai Anand.R
## Date : 05-January-2012
##================================================================================
#------------- Input Parameters --------------
## Specify the site URL from where you need to get all the list items
$webURL="http://serverName:46563/sites/MMS"
## Specify the list name from where you need to get the list items
[string]$listName
=
"List"
## Specify the location where the output xml file GetListItems.xml file has to
be generated
$outputXmlFilePath="D:\VijaiPOC\GetListItems.xml"
## $viewName is a string that contains the GUID of the view. If you give empty
value it will take the values from default view
[string]$viewName
=
""
## $rowLimit is a string that contains number of items to be retreived from the
list
[string]$rowLimit
=
"50"
[String]$viewFieldsValue="<FieldRef
Name='Title' />"
[String]$queryValue="<Where><Gt><FieldRef
Name='ID'/><Value Type='Number'>3</Value></Gt></Where>"
[String]$queryOptionsValue=""
#--------- Get List Items Function ----------
Function
GetListItems()
{
Write-Host
-ForegroundColor
Green
"Please pass the credentials that have access to the site: "$webURL
$credential=Get-Credential
$uri=$webURL+"/_vti_bin/Lists.asmx?wsdl"
$listsWebServiceReference
=
New-WebServiceProxy
-Uri
$uri
-Credential
$credential
[System.Xml.XmlDocument]$xmlDoc=New-Object
-TypeName
System.Xml.XmlDocument
[System.Xml.XmlElement]$query
=
$xmlDoc.CreateElement("Query")
[System.Xml.XmlElement]$viewFields
=$xmlDoc.CreateElement("ViewFields")
[System.Xml.XmlElement]$queryOptions
=$xmlDoc.CreateElement("QueryOptions")
$viewFields.InnerXml
=
$viewFieldsValue
$query.InnerXml
=
$queryValue
$queryOptions.InnerXml
=
$queryOptionsValue
[System.Xml.XmlNode]$nodeListItems
=$listsWebServiceReference.GetListItems($listName,
$viewName,
$query,
$viewFields,
$rowLimit,
$queryOptions,
$null)
$output
=
New-Object
-TypeName
System.IO.StreamWriter
-ArgumentList
$outputXmlFilePath,
$false
$output.WriteLine($nodeListItems.Outerxml)
$output.WriteLine()
$output.Dispose()
Write-Host
-ForegroundColor
Green
"Output file is generated in the path: "$outputXmlFilePath
}
#--------- Calling the Function -----------
GetListItems
Output
Output file is generated in the path specified in the $outputXmlFilePath.
Note: You will get only two items because in the query I have given a
condition ID>3.
Summary
Thus in this article you have seen how to get all the items from a particular
list using SharePoint 2010 web service.