如何删除没有访问域(控制器)的组策略?

我有一个(WS2012-R2)域控制器和一组(WS2012-R2)服务器是域的成员。 我不小心添加了一个组,所有pipe理员都是组策略“本地拒绝login访问”,“拒绝login为服务”,“拒绝远程访问”和“拒绝networking访问”的成员。 这导致我和所有其他pipe理员(即使是内置帐户)被locking在域控制器之外。

有没有办法通过删除GPO或从组中删除pipe理员帐户来重新获得对服务器的访问权限?

想到两个想法。

可以想象,使用启动CD可在脱机时访问域控制器,并手动编辑或删除违规的GPO – 域控制器上的文件系统中的SYSVOL文件夹下存在域的GPO,并将其作为registry设置应用可以从引导CD访问 – 但是,这可能会被复制取消,或者只要域控制器连接到域中的其他域控制器,就会导致域复制错误。 (我在这里假设你的域中有多个域控制器,如果你只有一个域控制器,这不会是一个坏的方法)。

想到的另一种方法是进入目录服务还原模式,并从早于该GPO的备份执行授权还原。 (而且这也依赖于你正在做的事情,并有备份来恢复。)

我没有真的尝试过这个。 (对不起)我还假设RSAT不能工作,因为“拒绝远程/networking访问”。 (如果你还没有尝试过,这是值得的,但我不乐观。)

也许你可以用一张Hiren's Boot CD创build一个新的pipe理员帐号,然后用这个帐号来编辑这个策略。

集团政策在哪里应用? 只有区议会或整个领域?

如果仅适用于DC,则仍然可以使用域pipe理员帐户login到另一台成员计算机; 那么您可以启用组策略pipe理控制台和/或所有其他ADpipe理工具(如果您在服务器操作系统上),或者安装RSAT并在工作站上执行相同操作; 使用这些工具,您将能够编辑违规的GPO,或至less用户和组(ADUC控制台使用LDAP查询,因此不受login限制的限制)。

如果将策略应用于整个域,并且不能使用域pipe理员帐户在任何地方进行实际login,则可能的解决方法是使用PowerShell Active Directory模块 :几乎所有的cmdlet都有一个-credential参数,可让您指定即使PowerShell实际上在不同的用户帐户下运行也要使用凭据来运行该命令; 这包括Remove-ADGroupMember 。 因此,一个可能的解决scheme是:

  • 使用任何可用的用户帐户login到任何成员计算机。
  • 确保系统上安装了ADpipe理工具(在服务器上启用它们或在工作站上安装RSAT)。
  • 启动PowerShell。
  • Import-Module ActiveDirectory
  • $admincreds = Get-Credential (这会popup一个窗口,您需要input域pipe理员帐户的凭证)
  • Remove-ADGroupMember <GroupName> <UserName> -Credentials $admincreds

如果这样做, <UserName>将从<GroupName>删除,因此违规策略不会再将其locking。

使用您在创build域时设置的帐户,以活动目录还原模式启动域控制器。 (这只是DC上的一个本地pipe理员帐户,名为Administrator ,密码是在dcpromo中设置的。)

从那里删除GPO ID文件夹中SYSVOL卷上的所有NTFS权限。 (检查最后修改的文件夹以查找最后修改的GPO)。

在该模式下,Active Directory数据库不会被加载,但您可以访问文件系统。

如果什么都gpofix ,在这种模式下你可以尝试一个gpofix命令,但是要知道它会删除所有的GPO。

最初创build域时,创build了一个“神”帐户。 找出这是什么,它的密码,你应该能够login到DC托pipe的全球目录。 从那里你应该能够撤消你所做的,并给它时间来传播。

如果失败了,可以使用一些黑客技术,但是在这里我不适合继续。 联系当地的安全专家,因为他们通常会加快黑客技术,并可以帮助您重新获得域名。

当然,如果这只是一些服务器,并不重要,那么你可以擦拭一下,重新开始。

首先,closures所有的域控制器。 这样做将避免奇怪的复制问题。

第一步是删除不良的组策略设置。 特权分配存储在每个策略文件夹下的MACHINE\Microsoft\Windows NT\SecEdit中的GptTmpl.inf文件中。 当.inf文件包含SeDenyNetworkLogonRightSeDenyInteractiveLogonRight等的SeDenyInteractiveLogonRight ,您将知道您拥有正确的策略。 删除所有的SeDeny...Right从它的SeDeny...Right线。

Windows将不会应用新的设置,除非它看到GPO已更改,这是通过查询Active Directory对象上的versionNumber属性来确定的。 我们不要尝试离线编辑AD。 相反,我们将手动从registry中删除错误的设置。

使用reg load将域控制器的\Windows\System32\config\SECURITYconfiguration单元挂载到另一个Windows系统的registry中。 打开registry编辑器并导航到挂载的configuration单元下的Policy\Accounts 。 (您可能需要将regedit作为SYSTEM运行, PsExec可以这样做。)每个子项对应一个用户或组,每个子项的ActSysAc子项都拥有“权限”。 (“权限”全部在Privilgs子项中。)find一个ActSysAc值为C0 03 00 00 ,它对应于您拒绝的四个权限。 删除ActSysAc或将其值更改为00 00 00 00 。 closuresregistry编辑器并用reg unload卸载configuration单元。

启动您修改的域控制器。 你现在应该可以login了。 使用组策略pipe理控制台对相关GPO的本地策略进行任何编辑(无论多么微不足道)。 这将增加GPO的版本号。

启动其他域控制器并让更改复制。

您可以尝试在资源pipe理器\\ domain.controler \ c $ \ windows \ sysvol \ sysvol \ domain.local \ polices中打开(您仍然可以访问)

在那里你会发现所有的政策。 将所有这个目录移到某个临时目标,并尝试重新启动PC。 这将有所帮助。