組策略定義新服務並將它們安裝在主伺服器中
我有帶有 Windows Server 2003 64 位的 Active Directory。我的一位使用者問我是否可以從開始 –> 控制面板 –> 服務啟動和停止 Oracle 和 MYSQL 服務。從那裡他可以控制它們手動或自動啟動,但現在由於使用者權限,他不能。
是否可以在組策略中添加新服務而不在 Windows Server 2003 上安裝 Oracle 和 MySQL?
所以只是為了確保我正確理解你:
- 使用者有一台安裝了 Oracle 和 MySQL 的 Windows 機器。
- 該使用者不是本地電腦管理員。
- 您希望該使用者能夠停止和啟動 Oracle 和 MySQL 服務。
聽起來您試圖更改組策略中的服務權限,但在未安裝 Oracle 或 MySQL 的電腦上進行了更改,這意味著這些服務不會出現在可用服務列表中。
我可以想到三個選項:
gpmc.msc
在裝有 Oracle 和 MySQL 的電腦上安裝組策略管理控制台 ( )。
- 如果您使用的是 Windows XP/2003,請下載並安裝帶有 Service Pack 1 的組策略管理控制台。
- 如果您使用的是 Windows Vista/7,請下載並安裝適用於 Windows 7 Service Pack 1 (SP1) 的遠端伺服器管理工具。
- 如果您使用的是 Windows 2008/2008R2,請直接從伺服器管理器添加功能組策略管理功能。
gpmc
安裝後,您可以在裝有 Oracle 和 MySQL 的電腦上編輯 GPO,您將看到它們的服務已列出。
在您用於編輯 GPO 的電腦上創建一個虛擬服務。
找到
ServiceKeyName
您要更改的服務。(這是服務的“短名稱”。)如果您只知道DisplayName
(“長名稱”)而不知道ServiceKeyName
(“短名稱”),您可以在安裝它的機器上找到它,例如:
sc GetKeyName "MySQL Service"
2. 在您用於編輯 GPO 的電腦上創建虛假服務:
sc create
ServiceKeyName
binPath= C:\Windows\system32\notepad.exe
3. 編輯 GPO。 4. 完成後,您可以使用以下命令刪除虛假服務:
sc delete
ServiceKeyName
3. 完全忘記 GPO,直接在服務上設置權限。首先,看看現有的權限是什麼:
C:\Windows\system32>**sc sdshow *ServiceKeyName***
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; SO)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
哎呀!SDDL 不可怕嗎?無論如何,這裡的想法是將我們需要的權限位添加到混亂中。例如,您可以通過添加以下內容來允許所有域使用者啟動、停止、暫停和讀取權限:
(A;;RPWPDTRC;;;DU)
或者對於本地使用者(“內置使用者”):
(A;;RPWPDTRC;;;BU)
所以最終的命令看起來像:
sc sdset *ServiceKeyName* D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SO)**(A;;RPWPDTRC;;;BU)**S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
4. 好吧,我撒謊了,我在寫這篇文章的時候又想到了另一種方法。;-) 您可以使用subinacl.exe
更簡單的方法來執行選項 3。不過,我不知道它是否與比 Windows XP/2003 更新的任何東西兼容。
- 下載並安裝SubInACL。
- 使用如下命令:
subinacl /service
ServiceKeyName
/grant=Users=TOP
(
TOP
是subinacl
開始/停止/暫停/繼續的語法)如果我誤讀了您的問題,請告訴我。