如何在 SharePoint Server 2013 中開啟和關閉 JSON 的多個中繼資料格式

SharePoint 2013
 

適用版本:SharePoint Server 2013

上次修改主題的時間:2016-12-16

摘要:了解如何在 SharePoint Server 2013 環境中開啟和關閉 JavaScript 物件標記法 (JSON) 功能的多個中繼資料格式。

多個中繼資料格式可以在 SharePoint Server 2013 Service Pack 1 (SP1) 環境中開啟。

多個中繼資料格式是當要求 JSON 且新增至 SharePoint Server 2013 Service Pack 1 (SP1) 和 SharePoint Online 上的 OData 時,由 OData 傳回的中繼資料的多個詳細資訊層級。如需可用的不同格式的額外資訊,請參閱 REST SharePoint API 版本中的 JSON Light 支援。您也可以針對內部部署環境開啟這項功能。您使用 Windows PowerShell 指令碼,以跨您的伺服陣列開啟功能。指令碼會跨所有現有的網站和任何您所建立的新網站開啟功能。

注意事項附註:
Windows PowerShell 是唯一的方式,以在 SharePoint Server 2013 Service Pack 1 (SP1) 中開啟多個中繼資料格式功能。
注意事項附註:
如果要讓指令碼的變更生效,必須要有應用程式集區回收,且會立即在指令碼中發生。

若要使用 Windows PowerShell 指令碼開啟多個中繼資料格式功能
  1. 確認您具備下列成員身分:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 待更新之所有資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 Windows PowerShell Cmdlet 的伺服器上的系統管理員群組。

    • 在執行 SharePoint 管理中心網站 的電腦上是個好主意。

    • 所有電腦都必須安裝 SharePoint Server 2013 Service Pack 1 (SP1) 和 WCF Data Services 5.6,且在全域存取快取 (GAC) 中。您可以藉由執行以 SharePoint Server 2013 Service Pack 1 (SP1) 更新的必要條件安裝程式,安裝 WCF 資料服務,或者您可以直接在 WCF Data Services 下載 MSI,並使用下列命令來進行安裝︰WcfDataServices.exe /quiet GacRuntime=1

      注意事項附註:
      如果您使用 WCF 圖形化安裝程式,您必須選擇 [選項] 以將組件放在 GAC 資料夾中,否則您不會具有您可以使用的功能。
    • 您必須閱讀 about_Execution_Policies

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 來授與使用 SharePoint 2013 Cmdlet 的權限。

    注意事項附註:
    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 Windows PowerShell 權限的其他資訊,請參閱權限Add-SPShellAdmin
  2. 使用文字編輯器,例如「記事本」,藉由將下列程式碼貼入檔案以建立文字檔案。

    $configOwnerName = "JSONLightDependentAssembly"
    
    $spWebConfigModClass ="Microsoft.SharePoint.Administration.SPWebConfigModification"
    
    $dependentAssemblyPath ="configuration/runtime/*[local-name()='assemblyBinding' and namespace-uri()='urn:schemas-microsoft-com:asm.v1']"
    
    $dependentAssemblyNameStart ="*[local-name()='dependentAssembly'][*/@name='"
    $dependentAssemblyNameEnd = "'][*/@publicKeyToken='31bf3856ad364e35'][*/@culture='neutral']"
    
    $dependentAssemblyValueStart = "<dependentAssembly><assemblyIdentity name='"
    $dependentAssemblyValueEnd ="' publicKeyToken='31bf3856ad364e35' culture='neutral' /><bindingRedirect oldVersion='5.0.0.0' newVersion='5.6.0.0' /></dependentAssembly>"
    
    $edmAssemblyName ="Microsoft.Data.Edm"
    $odataAssemblyName ="Microsoft.Data.Odata"
    $dataServicesAssemblyName ="Microsoft.Data.Services"
    $dataServicesClientAssemblyName ="Microsoft.Data.Services.Client"
    $spatialAssemblyName ="System.Spatial"
    
    
    $assemblyNamesArray = $edmAssemblyName,$odataAssemblyName,$dataServicesAssemblyName,$dataServicesClientAssemblyName, $spatialAssemblyName
    
    
    Add-PSSnapin Microsoft.SharePoint.Powershell
    $webService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
    
    
    ################ Adds individual assemblies ####################
    
    For ($i=0; $i -lt 5; $i++)  
    {
        echo "Adding Assembly..."$assemblyNamesArray[$i]
    
        $dependentAssembly = New-Object $spWebConfigModClass
        $dependentAssembly.Path=$dependentAssemblyPath
        $dependentAssembly.Sequence =0 # First item to be inserted
        $dependentAssembly.Owner = $configOwnerName
        $dependentAssembly.Name =$dependentAssemblyNameStart + $assemblyNamesArray[$i] + $dependentAssemblyNameEnd
        $dependentAssembly.Type = 0 #Ensure Child Node
        $dependentAssembly.Value = $dependentAssemblyValueStart + $assemblyNamesArray[$i] + $dependentAssemblyValueEnd
    
        $webService.WebConfigModifications.Add($dependentAssembly)
    }
    
    ###############################################################
    
    echo "Saving Web Config Modification"
    
    $webService.Update()
    $webService.ApplyWebConfigModifications()
    
    echo "Update Complete"
    
     
    
    
  3. 儲存檔案並新增 .ps1 副檔名,例如 JSON.ps1。

    注意事項附註:
    您可以使用不同的檔案名稱,但是必須將檔案儲存為副檔名為 .ps1 的 ANSI 編碼文字檔。
  4. 啟動 SharePoint 2013 管理命令介面。

    • 若為 Windows Server 2008 R2:

      • 在 [開始] 功能表上,依序按一下 [所有程式]、[Microsoft SharePoint 2013 產品][SharePoint 2013 管理命令介面]

    • 若為 Windows Server 2012:

      • 在 [開始] 畫面上,按一下 [SharePoint 2013 管理命令介面]。

    • 如果 [SharePoint 2013 管理命令介面] 不在 [開始] 畫面上:

    • 以滑鼠右鍵依序按一下 [電腦]、[所有應用程式] 與 [SharePoint 2013 管理命令介面]

    如需如何與 Windows Server 2012 互動的詳細資訊,請參閱 Windows Server 2012 的常見管理工作及瀏覽方式

  5. 變更至您儲存檔案的目錄。

  6. 在 Windows PowerShell 命令提示字元處,輸入下列命令。

    ./JSON.ps1
    

如果您發現需要從您的安裝中移除此功能時,您可以輕鬆執行指令碼,以移除所放置的項目。這會停用所有電腦的功能,並強制所有要求使用詳細資訊中繼資料格式。

若要使用 Windows PowerShell 指令碼關閉多個中繼資料格式功能
  1. 確認您具備下列成員身分:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

    • 待更新之所有資料庫上的 db_owner 固定資料庫角色。

    • 正在執行 Windows PowerShell Cmdlet 的伺服器上的系統管理員群組。

    • 您必須閱讀 about_Execution_Policies (https://go.microsoft.com/fwlink/p/?LinkId=193050)。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 來授與使用 SharePoint 2013 Cmdlet 的權限。

    注意事項附註:
    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 Windows PowerShell 權限的其他資訊,請參閱權限Add-SPShellAdmin
  2. 使用文字編輯器,例如「記事本」,藉由將下列程式碼貼入檔案以建立文字檔案。

    $configOwnerName = "JSONLightDependentAssembly"
    
    Add-PSSnapin Microsoft.SharePoint.Powershell
    $webService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
    
    $webService.WebConfigModifications | ft 
    
    $configs = $webService.WebConfigModifications | Where-Object {$_.Owner -eq $configOwnerName }
    foreach ($config in $configs) {
    
       echo "Removing Assembly..."$config.Name
    
       $webService.WebConfigModifications.Remove($config)
    }
    
    echo "Saving Web Config Modification"
    
    if($configs.length -ne 0)
    {
    $webService.Update()
    $webService.ApplyWebConfigModifications()
    }
    
    echo "Update Complete" 
    
    
  3. 儲存檔案並新增 .ps1 副檔名,例如 JSON_Remove.ps1。

    注意事項附註:
    您可以使用不同的檔案名稱,但是必須將檔案儲存為副檔名為 .ps1 的 ANSI 編碼文字檔。
  4. 啟動 SharePoint 2013 管理命令介面。

    • 若為 Windows Server 2008 R2:

      • 在 [開始] 功能表上,依序按一下 [所有程式]、SharePoint 2013 產品,然後按一下 SharePoint 2013 管理命令介面

    • 若為 Windows Server 2012:

      • 在 [開始] 畫面上,按一下 [SharePoint 2013 管理命令介面]。

        如果 [SharePoint 2013 管理命令介面] 不在 [開始] 畫面上:

      • 以滑鼠右鍵依序按一下 [電腦]、[所有應用程式] 與 [SharePoint 2013 管理命令介面]

    如需如何與 Windows Server 2012 互動的詳細資訊,請參閱 Windows Server 2012 的常見管理工作及瀏覽方式

  5. 變更至您儲存檔案的目錄。

  6. 在 Windows PowerShell 命令提示字元處輸入下列命令:

    ./JSON_Remove.ps1
    

顯示: