SharePoint Online のリストで評価の設定を有効化する
この記事について
SharePoint Online (以下、SPO) のコミュニケーションサイト以下にあるリストでは、これまで SharePoint リストで存在していた評価の設定
の項目が無効化されています。
例えば、SharePoint Server から移行する際、移行先の SPO のリストでこの評価の設定
の設定項目がない場合、リストアイテムのデータ移行に大きな支障を与える可能性があります。
リストに評価の設定
がないという事象は、サイトコレクションがチームサイトであれば問題なく表示されます。しかし、サイトコレクションがコミュニケーションサイトで作成されている場合、サブサイト以下に作成されているリストについても、評価の設定
は表示されません。
そのため、PowerShell を使って、この評価の設定
の設定項目がコミュニケーションサイト以下にあるリストでも表示されるようにする方法について、調査した内容をまとめました。
事象解決の概要
からめもさんのブログ に解決方法が記載されていました。
SPO の GUI の画面上では設定できないものの、SharePoint Online Management Shell を使って、 CSOM から機能を有効化させると、表示を行うことができました。(感謝)
ただし、この方法で機能を有効化すると、指定したサイトだけではなく、サイトコレクションである コミュニケーションサイト以下 (サブサイト以下を含む) すべてのリストの設定が更新されてしまう というもののようなので、その点は注意が必要だと思います。
機能の有効化手順
以下に記載の手順は Windows OS でのみ、可能です。
SharePoint Online Management Shell のインストール
インストーラー (.msi) をダウンロードしてインストールするか、PowerShell ギャラリーからモジュールをインストールすることで使用が可能になります。
- インストーラー (.msi): SharePoint Online Management Shell
- PowerShell ギャラリー: Microsoft.Online.SharePoint.PowerShell
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
機能の有効化
SharePoint Online Management Shell で、以下のコマンドを実行します。
{{siteurl}}
には、適用したいサイトコレクションを入力してください。(サブサイトも指定できますが、実行してもサイトコレクション単位で設定が上書きされるようです)
{{username}}
には、$siteurl
で指定したサイトコレクションの管理者権限をもつユーザーを指定します。
{{password}}
には、{{username}}
で指定したユーザーのパスワードを指定します。
$siteurl = "{{siteurl}}"
$username = "{{username}}"
$password = "{{password}}"
$password = ConvertTo-SecureString $password -AsPlainText -Force
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$context = New-Object Microsoft.SharePoint.Client.ClientContext($siteurl)
$context.Credentials = $credentials
$context.Site.Features.Add('915c240e-a6cc-49b8-8b2c-0bff8b553ed3', $true, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None) > $null
$context.ExecuteQuery()
リスト設定を確認
SharePoint Online Management Shell で評価の設定の有効化を行ったら、再度リストの設定画面を確認します。
先ほどは表示されていなかった評価の設定
メニューが、コミュニケーションサイト以下にあるリストでも表示されるようになっているはずです。
機能の無効化
評価の設定
機能を無効化する場合は、機能の有効化時に実行した、以下のコマンドを変更することで、無効化することができます。
# $context.Site.Features.Add('915c240e-a6cc-49b8-8b2c-0bff8b553ed3', $true, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None) > $null
$context.Site.Features.Remove('915c240e-a6cc-49b8-8b2c-0bff8b553ed3', [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None) > $null
さいごに
チームサイトでは表示されている評価の設定
項目が、コミュニケーションサイト側で表示されないようになっている (機能が無効になっている) 理由は、正直よくわからない部分がありますが、Microsoft 公式でも、この方法を推奨されているようでした。
こういった細かい差異については、どこかで一覧で確認できたらいいなと思います。(あったら教えてください)
Discussion