How to Update List Items in SharePoint using PowerShell?
Requirement: Update List Items in SharePoint using PowerShell
How to Update List Items in SharePoint using PowerShell Script?
Updating list items in SharePoint can be a tedious process, especially if you have to manually do it multiple times a day. You hate doing the same thing over and over again, isn’t it? Well, PowerShell to the rescue! This blog post will show you how to use PowerShell to update list items quickly. Let’s get started!
The basic syntax for updating a list item goes as:
#Get Web and List
$Web = Get-SPWeb "https://sharepointsite.com"
$List = $Web.Lists["ListName"]
#Get the List item to update
$ListItem = $List.GetItembyID($ItemID)
#Set Column values
$ListItem["ColumnName"] = "New Value for the Field!"
#Update the Item, so that it gets saved to the list
$ListItem.Update()
Update SharePoint list item using PowerShell script
Let’s take another example:
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue
$web = Get-SPWeb https://SharePointSite.com
#Get the Contacts List
$List = $web.Lists["Contacts"]
#Get the List Item by its Title field value
$ListItem = $List.Items | Where {$_["Title] -eq "Salaudeen Rajack"}
#Set "Department" column value
$ListItem["Department"] = "IT"
$ListItem.Update()
Update All List items using PowerShell script:
$web = Get-SPWeb https://SharePointSite.com
#Get the Contacts List
$List = $web.Lists["Contacts"]
#Get All Items by update its title
$ListItems = $List.items
#Iterate through each item
foreach($Item in $ListItems)
{
#Update the value of the "Title" column
$item["Title"] = "Title Updated!"
#Update the item
$item.Update()
}
How about Updating Selective List Items in Bulk?
Let’s update a list item by its id field.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$SiteURL = "https://portal.crescent.com/pipeline/"
$ListName = "Deals"
#Get the List
$List = (Get-SPWeb $SiteURL).Lists.TryGetList($ListName)
#List of Item IDs to update
$ItemIDs = 16,52,69,70,97,170,194,195,196,220,259
If($list)
{
foreach($ItemID in $ItemIDs)
{
#Get Item by ID
$ListItem = $List.GetItembyID($ItemID)
#Update List Item Fields
$ListItem["Health and SafetyRisk"]="Low"
$ListItem["Environmental Risk"]="Medium"
$ListItem["Social Risk"]="High"
$ListItem.SystemUpdate()
Write-host "Updated Item ID:"$ItemID
}
}
$List doesn’t have an Items method?
Hello
The command item.update does deletes the values of the column before updating it.
What if I do only want to update it without deleting before.
Thank you
Get-SPWeb : The term ‘Get-SPWeb’ is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:4 char:1
+ Get-SPWeb https://lon-iwww-dev.swatchgroup.net/Domain/IT/
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-SPWeb:String) [], CommandNo
tFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
And When i try to Add-PSSnapin “Microsoft.SharePoint.PowerShell”
Add-PSSnapin : The Windows PowerShell snap-in
‘Microsoft.SharePoint.PowerShell’ is not installed on this computer.
At line:1 char:1
+ Add-PSSnapin “Microsoft.SharePoint.PowerShell”
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Microsoft.SharePoint.PowerShel
l:String) [Add-PSSnapin], PSArgumentException
+ FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.Ad
dPSSnapinCommand
You must run this PowerShell from any of the SharePoint Servers of your SharePoint Farm (and not from your desktop!)