51CTOブログアドレス:https://blog.51cto.com/13969817blog
ガーデンブログアドレス:https://www.cnblogs.com/bxapollo
何らかの理由で、ユーザーまたは部門管理者は、現在のSharePoint Online Webサイトのリストテンプレートステータスを取得して、カスタマイズがあるかどうか、データの再配置を実行できるかどうか、ユーザーの使用状況を理解できるかどうかなどを判断し、SharePointOnline管理者として取得する方法を確認する必要があります。データのこの部分はどうですか?
今日は、スクリプトを使用してリストテンプレートと特定のサイトコレクションの関連する説明を取得する方法を紹介します。
実行スクリプトは、次の2つのステップに分かれています。
- SharePointOnlineアセンブリをロードする
- 指定されたサイトURLからすべてのリストテンプレートを取得するカスタム関数
SharePoint Onlineアセンブリをロードするコマンド:
- Add-Type -Path "C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 16 \ ISAPI \ Microsoft.SharePoint.Client.dll"
- Add-Type -Path "C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 16 \ ISAPI \ Microsoft.SharePoint.Client.Runtime.dll"
しかし、私の環境の.netは4.0であるため、デフォルトでは、リモートの場所からロードされたアセンブリでコードを実行する機能が無効になっているため、[System.Reflection.Assembly] :: LoadFrom()を使用してMicrosoft.SharePointをロードする必要があります。以下に示すように.Client.dll」:
注:これら2つのdllファイルをロードするには、SharePoint Serverデプロイメント側で実行する必要があります。そうしないと、物理パスにデフォルトでファイルがありません。
指定されたサイトURLからすべてのリストテンプレートを取得するカスタム関数
$SiteURL="https://mvptrainingcn.sharepoint.com/sites/Demo2"
#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get All list templates
$ListTemplates=$Ctx.Web.ListTemplates
$Ctx.Load($ListTemplates)
$Ctx.ExecuteQuery()
#Get All Available list templates
$ListTemplates | Select Name, Description, ListTemplateTypeKind| Sort-Object Name | Format-Table -AutoSize
ポップアップページで、Office 365グローバル管理者のアカウントとパスワードを入力すると、以下に示すように、デモWebサイトのリストテンプレートと対応する説明が読み込まれます。
全員が確認できるように、次の表から関連情報を直接取得することもできます。
このようにして、カスタマイズテンプレートを含むすべてのリストテンプレート情報を取得できます。この記事がすべての人に役立つことを願っています。お読みいただきありがとうございます。