【问题标题】:SharePoint 2010 update every Socond list item using Powershell SP.ClientSharePoint 2010 使用 Powershell SP.Client 更新每个 Socond 列表项
【发布时间】:2013-07-16 21:40:53
【问题描述】:

我需要使用 Powershell SharePoint.Client 更新每个 Second 项。 我使用了这里的一些代码http://blogs.technet.com/b/heyscriptingguy/archive/2011/02/15/using-powershell-to-get-data-from-a-sharepoint-2010-list.aspx 并添加了所需的功能。我在 Powershell 中很新,所以我可能犯了一些愚蠢的错误。请您检查我的代码并指出是什么错误。

Add-Type -path C:\Microsoft.SharePoint.Client.dll
Add-Type -path C:\Microsoft.SharePoint.Client.Runtime.dll

Function Get-SPClientList { 



$cSharp = @" 

using System; 
using System.Collections.Generic; 
using Microsoft.SharePoint.Client; 

namespace SPClient 
{ 
    public class SharePointList 
    { 
        public static ListItemCollection GetList() 
        { 
            ClientContext clientContext = new ClientContext("http://sp10sl1:55555/mychuldesite"); 
            List list = clientContext.Web.Lists.GetByTitle("CustomList"); 
            CamlQuery camlQuery = new CamlQuery(); 
            camlQuery.ViewXml = "<View/>"; 
            ListItemCollection listItems = list.GetItems(camlQuery); 
            clientContext.Load(list);  
            clientContext.Load(listItems); 
            clientContext.ExecuteQuery(); 
            return listItems; 
        } 
    } 
} 
"@ 
$assemblies = @( 
    "$PSSCriptRoot\Microsoft.SharePoint.Client.dll", 
    "$PSSCriptRoot\Microsoft.SharePoint.Client.Runtime.dll" 
    "System.Core" 
    ) 
Add-Type -TypeDefinition $cSharp -ReferencedAssemblies $assemblies 

$items = [SPClient.SharepointList]::GetList() 

$out = @() 
$i=0
foreach ($item in $items)
{
  if($i % 2 -eq 0)
  {
    $item["Title"] = "ClientTitle";
    $item["UserData"] = "ClientData";
    $item.Update();
  }
  $i += 1
}
$out
}

提前谢谢你。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    好的,我已经设法解决了。 我们可以简单地在 C# 块中添加更新逻辑,然后调用这个函数。

    它应该看起来像这样

    Add-Type -path C:\Microsoft.SharePoint.Client.dll
    Add-Type -path C:\Microsoft.SharePoint.Client.Runtime.dll
    
    
    
    $cSharp = @"
    
    
    using System;
    using System.Collections.Generic;
    using Microsoft.SharePoint.Client;
    using Microsoft.SharePoint;
    namespace SPClient
    {
    public class SharePointList
    {
    public static ListItemCollection GetList()
    {
    ClientContext clientContext = new ClientContext ("http://*****:****/*****");
    List list = clientContext.Web.Lists.GetByTitle("CustomList");
    
    CamlQuery camlQuery = new CamlQuery();
                camlQuery.ViewXml = "<View/>";
                ListItemCollection listItems = list.GetItems(camlQuery);
    
    
    clientContext.Load(list);
    clientContext.Load(listItems);
    clientContext.ExecuteQuery();
    int i=0;
    foreach ( ListItem item in listItems)
    {
     if(i % 2 == 0)
      {
    item["Title"] = "This is client Powershell";
    item["UserData"] = "Yeap it is";
    item.Update();
    clientContext.ExecuteQuery();
    }
    i++;
    }
    
    return listItems;
    }
    }
    }
    "@
    
    $assemblies = @( 
        "$PSSCriptRoot\Microsoft.SharePoint.Client.dll", 
        "$PSSCriptRoot\Microsoft.SharePoint.Client.Runtime.dll" 
        "System.Core" 
        ) 
    
    Add-Type -TypeDefinition $cSharp -ReferencedAssemblies $assemblies 
    
    $its = [SPClient.SharepointList]::GetList() 
    

    不幸的是,在没有任何教程的情况下,我需要很长时间才能完全理解这种代码,所以如果你知道的话,请告诉我。

    【讨论】:

      猜你喜欢
      • 2020-08-21
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2012-07-15
      • 2012-12-25
      • 2021-07-08
      相关资源
      最近更新 更多