How to Update List Items in SharePoint using PowerShell?

Requirement: Update List Items in SharePoint using PowerShell
Update List Items in SharePoint using PowerShell

How to Update List Items in SharePoint using PowerShell Script?
Well, the basic syntax for updating a list item goes as:
#Get Web and List 
$Web = Get-SPWeb "http://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
Lets take an another example:
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue

$web = Get-SPWeb http://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 http://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:
Lets update 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
    }
}

3 comments:

  1. 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 http://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

    ReplyDelete
    Replies
    1. You must run this PowerShell from any of the SharePoint Servers of your SharePoint Farm (and not from your desktop!)

      Delete
  2. 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

    ReplyDelete

Please Login and comment to get your questions answered!

Powered by Blogger.