​Sharepoint Powershell CSOM درواقع API است که به ما امکان میدهدکه بدون ریموت به سرور شیرپوینت با پاورشل کلاینت یا پاورشل سرور ثانوی به سایتهای فارم شیرپوینت در پاورشل دسترسی داشته باشیم.این امکان در نسخه های Sharepoint 2010 ، 2013،2016 و همچنین Office 360 وجوددارد.

در ادامه با مثالی نحوه کارکردن با این امکان را در شیرپوینت 2013 توضیح میدهم.

پیش نیازها:

به آدرس زیر رفته و وابسته به 64 بیتی یا 32 بیت بودن سیستم عامل یکی از موارد را دانلود و روی کلاینت خود نصب کنید.

دانلود پیش نیاز

با نصب این فایل در مسیر C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI فایل های DLL مورد نیاز کپی خواهد شد.

خواندن اطلاعات یک لیست با Powershell CSOM

پاورشل کلاینت خود را به صورت Run As Administrator باز کنید.(تفاوتی نمیکنه Powershell ISE یا Powershell) من در اینجا از Powershell ISE استفاده خواهم نمود.

سپس باید assembly هایی از شیرپوینت که مورد نیاز است را در پاورشل بارگزاری کنیم.دو خط زیر را به صورت جداگانه وارد نمایید:

Add-Type -Path 'C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll'

Add-Type -Path 'C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll'

اکنون نیاز است تا آدرس سایت کالکشن و Credential مورد نیاز برای دسترسی به سایت مورد نظر مشخص نماییم.دقت کنید سه خط اول را باید ویرایش نمایید:

$siteUrl="http://sitecollection address"

$loginname="domain\user"

$pwd="Password"

$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)

$ctx.Credentials = New-Object System.Net.NetworkCredential($loginname, $pwd)

اکنون ما به سایت مورد نظر وصل شدیم باید کدهای مورد نظر را اجرا نماییم:

    $lists = $ctx.web.Lists

    $list = $lists.GetByTitle("DisplayName لیست")

    $listItems = $list.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())

    $ctx.load($listItems)
    $ctx.executeQuery()

    foreach($listItem in $listItems)

    {

        Write-Host "ID -" $listItem["ID"] "   Title -" $listItem["Title"]

    }

 کد بالا تمامی آیتم های لیست مورد نظر در شیرپوینت را گرفته و در کنسول پاورشل به صورت زیر نمایش میدهد.

در مطالب آینده راه های ساده تری برای کدنویسی در پاورشل و CSOM خواهم گذاشت.