How to create a new hold using PowerShell and programmatically in SharePoint 2010

In this article we will be seeing how to create a new hold in SharePoint 2010 using PowerShell and C#.

Refer  to create a hold and add or remove the hold to the item through UI.

In this article

  • Create a new hold using c#
  • Create a new hold using PowerShell

Create a new hold using c#:

  • Open Visual Studio 2010.
  • Create a new console application.
  • Add the following references.
    • Microssoft.Office.Policy.dll
    • Microsoft.SharePoint.dll
  • Add the following namespaces.
    • using Microsoft.SharePoint;
    • using Microsoft.Office.RecordsManagement.Holds;
  • Replace the code with the following.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.Office.RecordsManagement.Holds;

namespace Holds

    class Program
        static void Main(string[] args)
            using (SPSite site = new SPSite("http://serverName:1111/"))
                using (SPWeb web = site.RootWeb)
                    //Create a new Hold in Holds list

                    SPList list = web.Lists["Holds"];
                    SPListItem item = list.Items.Add();
                    item["Title"] = "HR";
                    item["Description"] = "HR-Hold";
                    item["Managed By"] = web.CurrentUser;


Create a new hold using PowerShell:

$site=Get-SPSite $siteURL
$list = $web.Lists["Holds"]
$item["Description"] = "Finance-Hold";
$item["Managed By"] = $web.CurrentUser;