Cmdlets for SharePoint

Build 20.0.7654

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でSharePoint Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module SharePointCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module SharePointCmdlets;

Connect-SharePoint cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-SharePoint -User 'MyUserAccount' -Password 'MyPassword' -AuthScheme 'NTLM' -URL 'http://sharepointserver/mysite;'

SharePoint への接続

グローバルSharepoint サイト内のすべてのLists およびDocuments を操作するには、URL をSite Collection に設定します。サイト内のLists およびDocuments のみを操作するには、URL を特定のサイトに設定します。

URLサンプルURL
サイトhttps://teams.contoso.com/teamA or https://teamA.contoso.com
サイトコレクションhttps://teams.contoso.com

URL の提供に加え、次の接続プロパティセットのどれかを使ってSharePoint に認証します。以下のように、デフォルト値を使用するとほとんどの環境で簡単に接続できます。

SharePoint Online への認証

SharePointEdition を"SharePoint Online" に設定し、User およびPassword をSharePoint へのログオンに使用するクレデンシャルに設定します。例えば、Microsoft Online Services アカウントへのクレデンシャルです。

次のSSO(シングルサインオン)アイデンティティプロバイダーもサポートされています:Azure Active Directory、OneLogin、およびOKTA。

  • SSO

    SharePoint Online でSSO を有効化している場合には、User およびPassword に加えて、UseSSO をtrue に設定します。

    もしユーザーアカウントのドメインがアイデンティティプロバイダーに設定されたドメインと異なる場合には、SSODomain をアイデンティティプロバイダーで設定されたドメインに設定します。 このプロパティは、AD FS、OneLogin、およびOKTA で必要な場合があります。

SharePoint On Premises への認証

以下の認証タイプを使用するには、SharePointEdition を"SharePoint OnPremise" に設定します。

  • Windows (NTLM)

    これは最も一般的な認証タイプです。そのため、本製品 はNTLM をデフォルトとして使用するように事前設定されています。Windows のUser およびPassword を設定して接続します。

  • Kerberos およびKerberos Delegation

    Kerberos を認証するには、AuthScheme をNEGOTIATE に設定します。必要があれば、User およびPassword を設定します。Kerberos Delegation を使う場合にAuthScheme をKERBEROSDELEGATION に設定します。

    KerberosKDCKerberosSPN、およびKerberosRealm では、Kerberos 認証のコンポーネントを制御できます。

  • Forms

    これにより、Active Directory の代わりにカスタム認証メソッドによる認証が可能になります。この認証タイプを使用するには、AuthScheme をFORMS に設定し、User およびPassword を設定します。

MSI 認証による認証

Azure VM 上でSharePoint を実行している場合は、Managed Service Identity(MSI)の資格情報を利用して接続が可能です。

  • AuthSchemeAzureMSI に設定。

MSI 資格情報が認証用に自動的に取得されます。

データの取得

Select-SharePoint cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-SharePoint -Connection $conn -Table "Calendar" -Columns @("Id, Location") -Where "Location='Chapel Hill'"
Invoke-SharePoint cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-SharePoint -Connection $conn -Table Calendar -Where "Location <> 'Chapel Hill'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myCalendarData.csv -NoTypeInformation

Select-SharePoint からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-SharePoint -User 'MyUserAccount' -Password 'MyPassword' -AuthScheme 'NTLM' -URL 'http://sharepointserver/mysite;'
PS C:\> $row = Select-SharePoint -Connection $conn -Table "Calendar" -Columns (Id, Location) -Where "Location <> 'Chapel Hill'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "Calendar",
  "Columns":  [

  ],
  "Id":  "MyId",
  "Location":  "MyLocation"
} 

データの削除

以下は、抽出条件に合うあらゆるレコードを削除します。

Select-SharePoint -Connection $conn -Table Calendar -Where "Location = 'Chapel Hill'" | Remove-SharePoint

データの更新

cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをSharePoint にロードします。

Import-Csv -Path C:\MyCalendarUpdates.csv | %{
  $record = Select-SharePoint -Connection $conn -Table Calendar -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-SharePoint -Connection $conn -Table Calendar -Columns @("Id","Location") -Values @($_.Id, $_.Location) -Where "Id  = `'$_.Id`'"
  }else{
    Add-SharePoint -Connection $conn -Table Calendar -Columns @("Id","Location") -Values @($_.Id, $_.Location)
  }
}

Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 20.0.7654