2016年8月23日 星期二

授權"特定帳號"可重啟"特定服務"

前同事詢問一個需求,他們用戶端的使用者只有一般使用者權限,但因某些原因需要讓使用者能夠自行重啟某個服務,原本前同事要用 Script 將最高權限的帳號密碼寫在裡面來讓使用者可以自行重啟服務,但一直無法將 Script 裡的密碼加密而苦惱。

後來還好有幫忙找到幾篇可以授權特定服務讓特定使用者重啟服務的文章。

網路上有三種方法,1. 群組原則,2. 安全性範本,3.  Subinacl.exe 工具程式,只有安全性範本試不出來,所以在這只記錄兩種方法。

方法一:群組原則
 1. 開啟群組原則,因為該參數是「電腦設定」所以在要套用的電腦 OU 上按滑鼠右鍵,選擇「在這個網域中建立 GPO 並連結到」。

2. 自訂 GPO 名稱。

 3. 在新的 GPO 原則按滑鼠右鍵,選擇「編輯」。

 4. 展開「電腦設定 / 原則 / Windows 設定 / 安全性設定 / 系統服務」,在要設定管理的服務按滑鼠右鍵,選擇「內容」。(以 DHCP Client 為例)

 5. 勾選「定義這個原則設定」,並選擇「自動」,然後按「編輯安全性設定」。

 6. 按「新增」增加使用者。

 7. 輸入使用者帳號。

 8. 勾選允許「讀取」、「開始、停止及暫停」權限。

 9. 按確定後完成群組原則設定,待電腦下次重新開機即生效。

方法二:Subinacl.exe 工具程式
 1. 下載並安裝 Subinacl.exe 工具程式。

 2. 安裝完成後,要到下列資料夾執行指令。

平台
路徑
x86
C:Program FilesWindows Resource KitsTools
x64
C:Program Files (x86)Windows Resource KitsTools


 3. 參數裡指定的服務名稱必須以下圖的「服務名稱」為主。

 4. 指令參數如下。
  > subinacl.exe /SERVICE \ComputerNameServiceName /GRANT=[DomainName]UserName[=Access]

  例如:
  > subinacl.exe /SERVICE \.dhcp /GRANT=A0001 ;授權 A0001 完整控制權限
  > subinacl.exe /SERVICE \.dhcp /REVOKE=A0001 ;移除 A0001 完整控制權限
  > subinacl.exe /SERVICE \.dhcp /GRANT=A0001=TO ;授權 A0001 「T 啟動」、「O 停用」權限

  Access 參數:
  F:Full Control
  R:Generic Read
  W:Generic Write
  X:Generic eXecute
  L:Read controL
  Q:Query Service Configuration
  S:Query Service Status
  E:Enumerate Dependent Services
  C:Service Change Configuration
  T:Start Service
  O:Stop Service
  P:Pause/Continue Service
  I:Interrogate Service
  U:Service User-Defined Control Commands




資料參考來源:
Windows 如何設定「特定服務」由「特定使用者」進行管理
How to Grant Users Rights to Manage Services (Start, Stop, Etc.)



1 則留言: