📋
PowerShell で SharePoint 2013 のサイトの機能と同じ一覧を取得する
PowerShell で サイトの機能 と同じように機能名とアクティブの状態を一覧で取得しようとしたのですが、ちょっとコツが必要だったのでメモしておきます。
機能の一覧を取得するのは Get-SPFeature
コマンドレットでできるのですが、範囲を指定しない場合はインストールされているすべての機能を、範囲を指定した場合は有効になっている機能を取得します。[1] つまり、アクティブかどうかを取得するには、有効な機能の一覧に含まれるかをそれぞれチェックする必要があります。
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
$url = "{{site-url}}"
$locale = 1041
$version = 15
$features = Get-SPFeature -Web $url -Limit All | Where-Object { $_.Hidden -eq $false }
Get-SPFeature -Limit All |
Where-Object { $_.Scope -eq "Web" } |
Where-Object { $_.CompatibilityLevel -eq $version } |
Where-Object { $_.Hidden -eq $false } |
ForEach-Object { [PSCustomObject]@{
Id = $_.Id
Title = $_.GetTitle($locale)
IsActive = ($features | ForEach-Object { $_.Id }) -contains $_.Id
}} |
Sort-Object Title
サイト コレクションの機能で同じように取得したい場合は Web
をそれぞれ Site
に変更します。
-
WebApplication
、Site
、Web
のパラメーターのこと。 ↩︎
Discussion