我有一个(WS2012-R2)域控制器和一组作为该域成员的(WS2012-R2)服务器。我不小心将一个组的所有管理员都加入了组策略“本地拒绝登录访问”,“作为服务拒绝登录”,“拒绝远程访问”和“拒绝网络访问”。这导致我和所有其他管理员(甚至是内置帐户)被锁定在域控制器之外。
是否有办法通过删除GPO或从被拒绝的组中删除管理员帐户来重新获得对服务器的访问权限?
我有一个(WS2012-R2)域控制器和一组作为该域成员的(WS2012-R2)服务器。我不小心将一个组的所有管理员都加入了组策略“本地拒绝登录访问”,“作为服务拒绝登录”,“拒绝远程访问”和“拒绝网络访问”。这导致我和所有其他管理员(甚至是内置帐户)被锁定在域控制器之外。
是否有办法通过删除GPO或从被拒绝的组中删除管理员帐户来重新获得对服务器的访问权限?
Answers:
我想到两个想法。
可以想象,您可以在脱机时使用启动CD来访问域控制器,并手动编辑或删除有问题的GPO-域的GPO存在于域控制器上文件系统中的文件SYSVOL
夹下,并且都用作注册表设置,两者可以从启动CD进行访问的文件-但是,复制将使该操作被撤消,或者一旦您在域控制器上执行此操作的域控制器连接到域中的其他域控制器,就会导致域复制错误。(我在这里假设您的域中确实有多个域控制器,这应该……如果您只有一个,这不是一个坏方法)。
想到的另一种方法是进入目录服务还原模式,并从该GPO之前的备份中执行权威性还原。(同样,这也取决于您正在做的假设,并且要从中还原备份。)
我实际上没有尝试过。(对不起。)我还假设RSAT由于“拒绝远程/网络访问”而无法正常工作。(如果您没有尝试过,值得一试,但我并不乐观。)
也许您可以使用Hiren's Boot CD创建一个新的管理员帐户,然后使用该帐户编辑策略。
组策略在哪里应用?仅对DC还是对整个域?
如果仅将其应用于DC,则仍可以使用域管理员帐户登录到另一台成员计算机;然后,如果您在服务器操作系统上,则可以启用组策略管理控制台和/或所有其他AD管理工具,或者如果是工作站,则安装RSAT并执行相同的操作;使用这些工具,您将能够编辑有问题的GPO或至少用户和组(ADUC控制台使用LDAP查询,因此不受登录限制)。
如果将策略应用于整个域,而您实际上不能使用域管理员帐户登录任何地方,则可能的解决方法是使用PowerShell Active Directory模块:几乎所有cmdlet都有一个-credential
参数,可让您指定凭据用于运行命令,即使PowerShell实际上是在其他用户帐户下运行的;这包括Remove-ADGroupMember。因此,可能的解决方案是:
Import-Module ActiveDirectory
$admincreds = Get-Credential
(这会弹出一个窗口,您需要在其中输入域管理员帐户的凭据)Remove-ADGroupMember <GroupName> <UserName> -Credentials $admincreds
如果可行,<UserName>
将从中将其删除<GroupName>
,这样,违规策略将不再将其锁定。
Deny network access
通过RSAT(和PowerShell)适用于访问?并不是说我要进行测试,或者不是有将自己锁定在DC之外的经验,但是我认为这不会起作用。
使用在创建域时设置的帐户以活动目录还原模式启动域控制器。(这只是DC上的本地管理员帐户,名为Administrator
,密码已在dcpromo中设置。)
从那里,删除SYSVOL
GPO ID文件夹中卷上的所有NTFS权限。(检查最后修改的文件夹以找到最后修改的GPO)。
在这种模式下,不会加载Active Directory数据库,但是您可以访问文件系统。
如果没有任何效果,则可以在该模式下尝试gpofix
命令,但是请注意它将删除所有GPO。
最初创建域时,创建了一个“神”帐户。找出密码及其密码,然后您就可以登录托管全局目录的DC。从那里,您应该能够撤消所做的工作,并给它时间传播。
如果失败了,您可以使用一些黑客技术,但我不适合在这里重复使用。请与当地的安全专家联系,因为他们通常会掌握最新的黑客技术,并可以帮助您重新获得域。
当然,如果这只是几台服务器,并且并不重要,则最好擦除并重新开始。
首先,关闭所有域控制器。这样做可以避免出现奇怪的复制问题。
第一步是删除错误的组策略设置。权限分配存储在在GptTmpl.inf
文件中的MACHINE\Microsoft\Windows NT\SecEdit
每个策略文件夹下。你会知道你有正确的策略时.inf
文件包含线SeDenyNetworkLogonRight
,SeDenyInteractiveLogonRight
,等等。SeDeny...Right
从中删除所有行。
Windows将不会应用新的设置,除非它看到GPO已更改,而GPO是通过查询versionNumber
Active Directory对象上的属性来确定的。我们不要尝试离线编辑广告。相反,我们将手动从注册表中删除错误的设置。
使用将域控制器的\Windows\System32\config\SECURITY
配置单元挂载到另一个Windows系统的注册表中reg load
。打开注册表编辑器,然后导航到Policy\Accounts
已安装的配置单元下方。(您可能需要以regedit
SYSTEM身份运行才能正常工作。PsExec可以做到这一点。)该子项的每个子项都对应于一个用户或组,并且ActSysAc
每个子项都具有“权利”。(“特权”全部在Privilgs
子项中。)找到一个ActSysAc
值为的值C0 03 00 00
,该值与您拒绝的四个权限相对应。删除ActSysAc
或将其值更改为00 00 00 00
。关闭注册表编辑器,然后使用卸载配置单元reg unload
。
启动您修改的域控制器。您应该现在可以登录。使用组策略管理控制台可以对相关GPO的本地策略进行任何编辑(无论多么琐碎)。这将增加GPO的版本号。
启动其他域控制器,并复制更改。
您可以尝试在资源管理器\\ domain.controler \ c $ \ windows \ sysvol \ sysvol \ domain.local \ polices中打开(您仍然可以访问)
在那里您会找到所有警察。将所有此目录移动到某个临时目标,然后尝试重新启动PC。这会有所帮助。
\\domainname\sysvol\
这种方式执行和访问策略,但是我没有希望。修改sysvol需要域管理员权限,并且如果您已将所有域管理员锁定在外,则将无法使用所需的权限来访问它。