使用PnP PowerShell for SharePoint Online在文档库中设置“描述”

时间:2017-04-27 09:31:05

标签: powershell sharepoint csom

我正在尝试使用PnP-PowerShell命令在SharePoint Online中的文档库中设置描述,但它似乎在工作中非常间歇,所以我想检查一下这是正确的方法是什么?

我创建了一个新的库:​​

New-PnPList -Template DocumentLibrary -Title "TempLibrary"

然后尝试将描述设置为:

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

现在很明显,这不起作用,因为我需要用CSOM发回更改吗?

然后我尝试了以下内容:

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

但这似乎仍无效。

任何人对如何可靠地做到这一点的任何想法都将非常感激。

非常感谢, d。

更新

Eurgh ......这似乎有效,但这是对的吗?这是预期的吗?感觉不像PowerShell那样...

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

2 个答案:

答案 0 :(得分:1)

如果不加载列表,您将无法设置描述或其他属性,因此代码是正确的。

$ctx.Load($t)

为什么你认为这不是PS? :)好奇......

答案 1 :(得分:0)

使用以下脚本。希望它有所帮助。

    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