本文件已封存並已停止維護。

如何在 Operations Manager 2007 中使用命令殼層設定報表上的權限

更新日期: 2009年5月

適用於: Operations Manager 2007 R2

使用本主題中所提供的程序,限制包含敏感資訊的 Operations Manager 2007 報表之存取權限。

首先,使用命令殼層指令碼建立新的使用者角色。本主題最後將顯示用於建立新使用者角色的命令殼層指令碼範例。

接著,使用 Get-UserRole 命令設定報表權限。

Caution注意
編輯報表的安全性內容後,資料夾中每份報表的資料夾繼承將會停用。遺失資料夾繼承時,您必須使用 Get-UserRole 命令,為資料夾中的每份報表手動設定權限。

如需 Operations Manager 命令殼層的詳細資訊,請參閱 Operations Manager 2007 SDK,網址為 http://go.microsoft.com/fwlink/?LinkId=65912 (英文)

若要建立新使用者角色

  1. 將命令殼層指令碼範例複製到您的本機硬碟,然後使用副檔名 .ps1 儲存檔案 (例如 ReportOperator.ps1)。

  2. 啟動 Operations Manager 命令殼層。

  3. 執行指令碼,例如:輸入 C:\ReportOperator.ps1,然後按 ENTER。

  4. 在 Operations 主控台中,按一下 [系統管理]。

  5. 在 [系統管理] 窗格中展開 [系統管理],再展開 [安全性],然後按一下 [使用者角色]。

  6. 在 [使用者角色] 窗格中,在先前使用命令殼層指令碼建立的新使用者角色上按一下滑鼠右鍵,然後按一下 [內容]。

  7. 在 [使用者角色內容] 對話方塊,按一下 [一般] 頁面,然後按一下 [新增]。

  8. 在 [選取使用者或群組] 頁面上,輸入要指派給使用者角色的使用者或群組,然後按一下 [確定]。

    Important重要事項
    新增機器帳戶至使用者角色成員可讓該電腦上的所有服務都具備 SDK 存取權限。建議您不要將機器帳戶新增至任何使用者角色。

  9. 按一下 [套用],然後按一下 [確定]。

  10. 現在,您必須將新使用者角色的 GUID 新增到 SQL Server Reporting Services。請使用下列步驟:

    1. 在 [使者角色] 檢視中,按兩下新的使用者角色。

    2. 按一下 [識別] 索引標籤。

    3. 按一下 [複製],複製新使用者的 GUID,再按一下 [確定],關閉 [內容] 視窗。

    4. 以網頁瀏覽器瀏覽到 http://localhost/Reports,啟動 SQL Server Reporting Services 報表管理員。

    5. 按一下 [內容] 索引標籤。

    6. 按一下 [新增角色指派服務]。

    7. 將 GUID 貼到 [群組或使用者名稱] 欄位中。

    8. 選取您要指派給新 Report Operator 使用者角色的角色,再按一下 [確定]。

若要使用命令殼層設定報表的權限

  1. 使用 Get-UserRole 命令尋找要用於報表的特定使用者角色。

    note附註
    get-userrole | format-list Name,ID | ft 命令將顯示易於閱讀的表格,其中會顯示使用者角色名稱及其關聯的 GUID。

  2. 將 GUID 複製到剪貼簿。

  3. 使用瀏覽器並連線至 SQL Server 執行個體 (http://<computername>/reports$instance1) 以存取報表。

  4. 在 [SQL Server Reporting Services] 首頁上,按一下包含報表的資料夾 (例如:按一下 [報表],然後按一下 [Microsoft.SystemCenter.DataWarehouse.Report.Library])。

  5. 按一下 [內容] 索引標籤,然後在瀏覽窗格中按一下 [安全性]。

  6. 按一下 [編輯項目安全性]。

  7. 按一下 [瀏覽者]、[我的報表]、[報表產生器] 角色的核取方塊,然後使用您選取並複製到剪貼簿的使用者角色之 GUID 來取代現有 GUID。

範例

您可以使用以下的程式碼範例,針對報表操作員設定檔建立使用者角色。此範例中的新使用者角色稱為「測試報表操作員角色」,不過您可以在執行指令碼之前加以變更。

$mg = (get-item .).ManagementGroup $reportOperator = $mg.GetMonitoringProfiles() | where {$_.Name -eq "ReportOperator"} $obj = new-object Microsoft.EnterpriseManagement.Monitoring.Security.MonitoringUserRole

$obj.Name = "TestReportOperatorRole" $obj.DisplayName = "測試報表操作員角色" $obj.Description = "測試報表操作員角色" $obj.MonitoringProfile = $reportOperator

$mg.InsertMonitoringUserRole($obj)
 
顯示: