如何用2个GPO控制系统服务?

设置 – 我正在运行Windows Server 2008 R2的小型networking。 我有2个GPO运行我公司要求的安全设置。 在以下Hierachy中:

  • GPO A(定期)
  • GPO B(不间断)

GPO A用于修补我们的系统,使Windows Update服务在设置为“启用链接”时设置为“自动”。 GPO B正在设置公司所需的安全设置,因此它将Windows Update服务设置为禁用。

问题 – 当GPO启用并强制执行时,Windows Update服务被设置为禁用。 根据RSOP它应该被设置为自动,但它并不实际启动或自动,它被禁用。 GPO A应该优先并将其设置为“自动”。

问题 – GPO能否控制1项服务? 据我了解,GPO由优先级pipe理,所以GPO A应该在处理GPO时自动保持服务。 有没有办法让这些设置保持不变或者其中一个GPO需要重新configurationWindows Update服务器?

编辑1:如果我写了一个启动脚本启动Powershell的服务GPO将禁用服务,一旦它重新应用每小时无论如何。 即使执行了GPO,它也会禁用该服务。

自动点唱机,

一般来说,我们不为别人编写脚本,但在这种情况下,我认为脚本编写比仅使用组策略更好,我愿意为所有正在尝试做同样事情的人编写PowerShell。

在组策略中,创build一个新的GPO,并在GPO中为每台计算机写一个新文件(计算机策略)。 PowerShell文件可以放在任何你想要的地方,但是要记下这个位置,因为以后你会用到它。 在下面的示例中,我使用了位置\\ server \ share \ status.txt。 如果您更改位置或文件名称,则需要更新代码。

$WindowsServiceName = "wuauserv" $NewStatus = Get-Content "\\server\share\status.txt" function EnableWindowsService { Set-Service $WindowsServiceName -StartupType Automatic Start-Service $WindowsServiceName } function DisableWindowsService { Stop-Service $WindowsServiceName Set-Service $WindowsServiceName -StartupType Disabled } If ($NewStatus -like 'enabled' ) { EnableWindowsService } If ($NewStatus -like 'disabled' ) { DisableWindowsService } 

完成此操作后,应该创build一个运行PowerShell脚本的GPO作为login脚本或注销脚本(或者,您可以构build计划任务以在发生指定的触发器事件时运行PowerShell脚本)。

在status.txt中,您应该写入启用禁用

触发发生时,PowerShell文件将读取status.txt的内容,并根据此文件的内容启用并启动Windows更新服务,否则将停止并禁用Windows更新服务。

由于这是通过PowerShell完成的,您还可以使用PowerShell按需远程运行文件。 如果您使用此方法,则需要删除两个GPO。 如果你使用这个,你将不需要它们,因为这样做是一样的。 唯一的区别是您可以比每隔60分钟更频繁地运行一次,您可以按需运行,而且您没有冲突的GPO。 这符合您编写的安全性要求,并且效果更好。

在GPO中的System Services之间进行一些初始testing之后

计算机configuration>策略> Windows设置>系统服务

我发现这些设置最适合使用基于Windows的服务来设置首选项和安全设置。 我确实有一些系统服务被禁用,而不是基于Windows的服务,这是我find答案的地方。 位置是

计算机configuration>首选项>控制面板设置>服务 在这里输入图像说明

在那里你可以添加你想控制的服务的状态。 在这里输入图像说明

在我的安全GPO上,我将“ 启动”设置为“ Disabled ,将“ 服务”操作设置为“ Stop Service 。 这将确保如果服务在修补时间之外运行,则会停止服务并将其禁用。

在我的更新GPO上,我将“ 启动”设置为“ Automatic ,“ 服务”操作设置为“ Start Service

然后,我在“组策略”中将“修补GPO”放在更高的层次结构中。 启用更新GPO策略后,此GPO将覆盖在安全GPO中应用的策略。

如果以这种方式设置,则可以在任何机器上执行简单的gpupdate / force,并且将根据GPO是否启用以及哪个更高级别来更改服务的控制。 这正是我所期待的。

这篇文章是非常有用的,我希望可以帮助其他人: 如何使用组策略来控制服务Alan Burchill