📋

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 にそれぞれ変更してください。

脚注
  1. WebApplication、Site、Web のパラメーターのこと。 ↩︎

Discussion