PnP PowerShellでアクティブ化されたサイトコレクションの機能を取得する
概要
PnP PowerShellでSharePoint Onlineのサイトコレクションの機能を取得する時に困ったことなど
↓「ここを取得するんだろ、まかせとけ」と言ったことから始まる検証の一部である。
基本情報
PnP PowerShellのGet-PnPFeatureコマンドを実行することで、サイトコレクションの機能のうちアクティブ化した機能を取得することができる。
Get-PnPFeature -scope site
※既定ではScopeがwebになっており、この場合「サイト機能の管理」を取得するので注意。
コマンド実行時に判明したこと
全ての機能が非アクティブ化状態でも値は返ってくる
サイトコレクションの機能が全て既定で非アクティブ化されているサイトテンプレートであるコミュニケーションサイトを対象に、既定の状態でGet-PnPFeatureコマンドを実行すると下記の結果になる。
DisplayName DefinitionId
----------- ------------
TenantSitesList 3019c9b4-e371-438d-98f6-0a08c34d06eb
GlobalHold 2a6bf8e8-10b5-42f2-9d3e-267dfb0de8d4
CTypes 695b6570-a48b-4a8e-8ea5-26ea7fc1d162
ShareWithEveryone 10f73b29-5779-46b3-85a8-4817a6e9a6c2
Fields ca7bd552-10b1-4563-85b9-5ed1d39c962a
SetFileVersionPolicyAsync 371a9b45-6923-41d8-9f5d-6c4506e51b2e
VisioWebAccess 9fec40ea-a949-407d-be09-6cba26470a0c
spoguestintegration 9836d446-3785-4579-8480-a27d5c965b19
SearchWebParts eaf6a128-0482-4f71-9a2f-b1c650680e77
IPFSSiteFeatures c88c4ff1-dbf5-4649-ad9f-c6c426ebcbf5
SitePageResources ff77ac56-88d0-4147-b865-e84f5f03fc42
TaxonomyFieldAdded 73ef14b1-13a9-416b-a9b5-ececa2b0604c
サイトコレクションの機能:DefinitionId = 1:n
わかりやすく言うと、「サイトコレクションの機能をひとつアクティブ化したからといって、Get-PnPFeatureコマンドで取得できるDisplayName/DefinitionIdがひとつ増える、とは限らない」のである。
例として、コミュニケーションサイトで「発行承認のワークフロー」機能のみをアクティブ化した場合、下記の結果になる。「ReviewPublishingSPD~」他、ずらっと並ぶ。
DisplayName DefinitionId
----------- ------------
TenantSitesList 3019c9b4-e371-438d-98f6-0a08c34d06eb
GlobalHold 2a6bf8e8-10b5-42f2-9d3e-267dfb0de8d4
CTypes 695b6570-a48b-4a8e-8ea5-26ea7fc1d162
ShareWithEveryone 10f73b29-5779-46b3-85a8-4817a6e9a6c2
Fields ca7bd552-10b1-4563-85b9-5ed1d39c962a
ReviewPublishingSPD1025 19f5f68e-1b92-4a02-b04d-61810ead0401
ReviewPublishingSPD1026 19f5f68e-1b92-4a02-b04d-61810ead0402
ReviewPublishingSPD1027 19f5f68e-1b92-4a02-b04d-61810ead0403
ReviewPublishingSPD1028 19f5f68e-1b92-4a02-b04d-61810ead0404
ReviewPublishingSPD1029 19f5f68e-1b92-4a02-b04d-61810ead0405
ReviewPublishingSPD1030 19f5f68e-1b92-4a02-b04d-61810ead0406
ReviewPublishingSPD1031 19f5f68e-1b92-4a02-b04d-61810ead0407
ReviewPublishingSPD1032 19f5f68e-1b92-4a02-b04d-61810ead0408
ReviewPublishingSPD1033 19f5f68e-1b92-4a02-b04d-61810ead0409
ReviewPublishingSPD1035 19f5f68e-1b92-4a02-b04d-61810ead040b
ReviewPublishingSPD1036 19f5f68e-1b92-4a02-b04d-61810ead040c
ReviewPublishingSPD1037 19f5f68e-1b92-4a02-b04d-61810ead040d
ReviewPublishingSPD1038 19f5f68e-1b92-4a02-b04d-61810ead040e
ReviewPublishingSPD1040 19f5f68e-1b92-4a02-b04d-61810ead0410
ReviewPublishingSPD1041 19f5f68e-1b92-4a02-b04d-61810ead0411
ReviewPublishingSPD1042 19f5f68e-1b92-4a02-b04d-61810ead0412
ReviewPublishingSPD1043 19f5f68e-1b92-4a02-b04d-61810ead0413
ReviewPublishingSPD1044 19f5f68e-1b92-4a02-b04d-61810ead0414
ReviewPublishingSPD1045 19f5f68e-1b92-4a02-b04d-61810ead0415
ReviewPublishingSPD1046 19f5f68e-1b92-4a02-b04d-61810ead0416
ReviewPublishingSPD1048 19f5f68e-1b92-4a02-b04d-61810ead0418
ReviewPublishingSPD1049 19f5f68e-1b92-4a02-b04d-61810ead0419
ReviewPublishingSPD1050 19f5f68e-1b92-4a02-b04d-61810ead041a
ReviewPublishingSPD1051 19f5f68e-1b92-4a02-b04d-61810ead041b
ReviewPublishingSPD1053 19f5f68e-1b92-4a02-b04d-61810ead041d
ReviewPublishingSPD1054 19f5f68e-1b92-4a02-b04d-61810ead041e
ReviewPublishingSPD1055 19f5f68e-1b92-4a02-b04d-61810ead041f
ReviewPublishingSPD1057 19f5f68e-1b92-4a02-b04d-61810ead0421
ReviewPublishingSPD1058 19f5f68e-1b92-4a02-b04d-61810ead0422
ReviewPublishingSPD1060 19f5f68e-1b92-4a02-b04d-61810ead0424
ReviewPublishingSPD1061 19f5f68e-1b92-4a02-b04d-61810ead0425
ReviewPublishingSPD1062 19f5f68e-1b92-4a02-b04d-61810ead0426
ReviewPublishingSPD1063 19f5f68e-1b92-4a02-b04d-61810ead0427
ReviewPublishingSPD1069 19f5f68e-1b92-4a02-b04d-61810ead042d
ReviewPublishingSPD1081 19f5f68e-1b92-4a02-b04d-61810ead0439
ReviewPublishingSPD1087 19f5f68e-1b92-4a02-b04d-61810ead043f
ReviewPublishingSPD1110 19f5f68e-1b92-4a02-b04d-61810ead0456
ReviewPublishingSPD2052 19f5f68e-1b92-4a02-b04d-61810ead0804
ReviewPublishingSPD2070 19f5f68e-1b92-4a02-b04d-61810ead0816
ReviewPublishingSPD2074 19f5f68e-1b92-4a02-b04d-61810ead081a
ReviewPublishingSPD3082 19f5f68e-1b92-4a02-b04d-61810ead0c0a
SetFileVersionPolicyAsync 371a9b45-6923-41d8-9f5d-6c4506e51b2e
VisioWebAccess 9fec40ea-a949-407d-be09-6cba26470a0c
OffWFCommon c9c9515d-e4e2-4001-9050-74f980f93160
spoguestintegration 9836d446-3785-4579-8480-a27d5c965b19
SearchWebParts eaf6a128-0482-4f71-9a2f-b1c650680e77
IPFSSiteFeatures c88c4ff1-dbf5-4649-ad9f-c6c426ebcbf5
SitePageResources ff77ac56-88d0-4147-b865-e84f5f03fc42
TaxonomyFieldAdded 73ef14b1-13a9-416b-a9b5-ececa2b0604c
ReviewPublishingSPD a44d2aa3-affc-4d58-8db4-f4a3af053188
複数の機能で共有されるDisplayName/DefinitionIdが存在する
コミュニケーションサイトで「ワークフロー」機能のみをアクティブ化した場合、下記の結果になる。
「サイトコレクションの機能:DefinitionId = 1:n」の出力結果と照合すると、既定でアクティブ化されている機能を除けば、DisplayName 「OffWFCommon」が複数の機能で共有されていることがわかる。
DisplayName DefinitionId
----------- ------------
TenantSitesList 3019c9b4-e371-438d-98f6-0a08c34d06eb
GlobalHold 2a6bf8e8-10b5-42f2-9d3e-267dfb0de8d4
CTypes 695b6570-a48b-4a8e-8ea5-26ea7fc1d162
SignaturesWorkflowSPD c4773de6-ba70-4583-b751-2a7b1dc67e3a
SignaturesWorkflowSPD1041 a42f749f-8633-48b7-9b22-403b40190411
ShareWithEveryone 10f73b29-5779-46b3-85a8-4817a6e9a6c2
Fields ca7bd552-10b1-4563-85b9-5ed1d39c962a
SetFileVersionPolicyAsync 371a9b45-6923-41d8-9f5d-6c4506e51b2e
VisioWebAccess 9fec40ea-a949-407d-be09-6cba26470a0c
OffWFCommon c9c9515d-e4e2-4001-9050-74f980f93160
Workflows 0af5989a-3aea-4519-8ab0-85d91abe39ff
ReviewWorkflowsSPD b5934f65-a844-4e67-82e5-92f66aafe912
ReviewWorkflowsSPD1041 3bc0c1e1-b7d5-4e82-afd7-9f7e59b60411
spoguestintegration 9836d446-3785-4579-8480-a27d5c965b19
SearchWebParts eaf6a128-0482-4f71-9a2f-b1c650680e77
IPFSSiteFeatures c88c4ff1-dbf5-4649-ad9f-c6c426ebcbf5
SitePageResources ff77ac56-88d0-4147-b865-e84f5f03fc42
TaxonomyFieldAdded 73ef14b1-13a9-416b-a9b5-ececa2b0604c
TranslationWorkflow c6561405-ea03-40a9-a57f-f25472942a22
その他確認できたこと
・サイトテンプレートやサイトコレクションの設定言語が違っても、DisplayName/DefinitionIdは共通か?
はい
・サイトテンプレートが異なっても、取得できるDisplayName/DefinitionIdは共通か?
いいえ
開発者向けサイトで何もアクティブ化していない状態で取得できる値は以下の通りであり、DisplayName「Developer」など、先述したコミュニケーションサイトとは異なるものがある。
DisplayName DefinitionId
----------- ------------
HelpCollectionRemoveDefault 232b3f94-9d6e-4ed6-8d55-04d5a44ac449
EnhancedTheming 068bc832-4951-11dc-8314-0800200c9a66
Ratings 915c240e-a6cc-49b8-8b2c-0bff8b553ed3
GlobalHold 2a6bf8e8-10b5-42f2-9d3e-267dfb0de8d4
CTypes 695b6570-a48b-4a8e-8ea5-26ea7fc1d162
ShareWithEveryone 10f73b29-5779-46b3-85a8-4817a6e9a6c2
Developer e374875e-06b6-11e0-b0fa-57f5dfd72085
Fields ca7bd552-10b1-4563-85b9-5ed1d39c962a
SearchDrivenContent 592ccb4a-9304-49ab-aab1-66638198bb58
SetFileVersionPolicyAsync 371a9b45-6923-41d8-9f5d-6c4506e51b2e
MediaWebPart 5b79b49a-2da6-4161-95bd-7375c1995ef9
spoguestintegration 9836d446-3785-4579-8480-a27d5c965b19
ExcelServerWebPart 4c42ab64-55af-4c7c-986a-ac216a6e0c0e
SearchWebParts eaf6a128-0482-4f71-9a2f-b1c650680e77
BasicWebParts 00bfea71-1c5e-4a24-b310-ba51c3eb7a57
IPFSSiteFeatures c88c4ff1-dbf5-4649-ad9f-c6c426ebcbf5
MobileExcelWebAccess e995e28b-9ba8-4668-9933-cf5c146d7a9f
ExcelServerSite 3cb475e7-4e87-45eb-a1f3-db96ad7cf313
AccSrvSolutionGallery 744b5fd3-3b09-4da6-9bd1-de18315b045d
AssetLibrary 4bcccd62-dcaf-46dc-a7d4-e38277ef33f4
SitePageResources ff77ac56-88d0-4147-b865-e84f5f03fc42
TaxonomyFieldAdded 73ef14b1-13a9-416b-a9b5-ececa2b0604c
まとめ
一目で人間にわかる内容ではない
Get-PnPFeatureは「アクティブ化された機能で利用しているDisplayName/DefinitionIdを取得できる」コマンドであり、「アクティブ化されたサイトコレクションの機能を一括取得できるということか?」という認識だと、この取得内容を見て肩透かしを食らう。
人間にもわかりやすいような「GUIと同様の見た目のCSVを出力する処理」を有したPowerShellスクリプトを開発したい場合、本記事の検証を踏まえてさらに調査が必要となる。
素直にGUIで確認した方が早い
「どの機能とDisplayName/DefinitionIdが紐づいているのか?」等の関係性はMS Learnにも記載されていない。確認する対象のサイトコレクションの数が少ないならGUI上で確認するのが良いだろう。
サイトコレクションの機能とDisplayName/DefinitionIdの紐付けはマジで疲れる。
Discussion