Darren
Darren

Reputation: 1133

Setting the "Description" on a Document Library using PnP PowerShell for SharePoint Online

I am trying to set the description on a Document Library in SharePoint Online using the PnP-PowerShell Commands, but it seems to be very intermittent in working, so I wanted to check what the correct way to do it is?

I create a new library with:

New-PnPList -Template DocumentLibrary -Title "TempLibrary"

Then try to set the Description with:

$l = Get-PnPList -Identity TempLibrary
$l.Description = "My Description Here"

Now clearly that doesn't work since I need to send the changes back with CSOM I assume?

So then I tried the following:

$ctx = Get-PnPContext
$l = Get-PnPList -Identity TempLibrary
$l.Description = "My Description Here"
$ctx.ExecuteQuery()

But this still didn't seem to work.

Any thoughts anyone has on how to do this reliably would be greatly appreciated.

Many thanks, D.

UPDATE

Eurgh... This seems to work, but is this right? Is it expected? Doesn't feel very PowerShell like...

New-PnPList -Title "Test5" -Template DocumentLibrary
$t = Get-PnPList -Identity Test5
$ctx.Load($t)
$ctx.ExecuteQuery()
$t.Description = "Test5 Description"
$t.Update()
$ctx.ExecuteQuery()

Upvotes: 0

Views: 1396

Answers (2)

Aausuman
Aausuman

Reputation: 13

Use the following script. Hope it helps.

    Add - PSSnapin Microsoft.SharePoint.PowerShell  

    function CreateList($spWeb, $listName) 
    {   
        $spTemplate = $spWeb.ListTemplates["Document Library"]  
        $spListCollection = $spWeb.Lists  
        $spListCollection.Add($listName, $listName, $spTemplate)  
    }  

    Function SetDescription($spWeb, $listName)
    {            
        $path = $spWeb.url.trim()  
        $spList = $spWeb.GetList("$path/Lists/$listName")
        $spList.Description = "--Your Desired Description--"
        $spList.Update()
    }


    $siteCollectionUrl = "--Your Site Collection Url--"  
    $listName = "--Your Desired List Name--"  
    $spWeb = Get - SPWeb - Identity $siteCollectionUrl 

    CreateList $spWeb $listName 

    SetDescription $spWeb $listName

Upvotes: 0

Priyankar Dutta
Priyankar Dutta

Reputation: 33

Without loading the list you will not be able to set the description or other properties so the code is correct.

$ctx.Load($t)

Why do you think this is not PS like? :) Curious...

Upvotes: 1

Related Questions