问题描述

某桌面环境中,突然用户无法登录,经检查域环境中主AD故障,IP地址和主机信息,在VC界面均不现实,登录显示黑屏,重启后AD报:


NTDS(600)NTDSA:无法写入文件的阴影标头。
















问题分析

1)首先NTDS是什么?
NTDS:注册表路径HKLM\SYSTEM\CurrentControlSet\Services

The NTDS subkey stores configuration data for Active Directory.

In particular, Active Directory stores domain controller information in this subkey that it uses to restart Active Directory independently and to configure the Active Directory database. Active Directory also saves log file locations in this subkey.
从上述描述可知NTDS是存储AD配置及日志的一个服务,可用于重启和配置AD域控的数据库;

2)使用Dsquery工具单独查看操作主机角色

Dsquery Server –Hasfsmo Schema //查看架构主机

Dsquery Server –Hasfsmo Name //查看域 主机

Dsquery Server –Hasfsmo PDC //查看PDC模拟器主机

Dsquery Server –Hasfsmo RID //查看RID主机

Dsquery Server –Hasfsmo Infr //查看基础结构主机
3)查看域控:
netdom query fsmo

4)域安全通道和信任关系维护工具-- Nltest.exe

1>重新修复建立域主域之间的信任关系

第一步获取当前凭证,然后输入域用户名和密码

Get-Credential

第二步检查本地计算机与其域之间的安全通道的信任关系的状态,来验证安全通道是否正常工作。如果连接失败,则使用 Repair 参数尝试恢复。如果返回flase,则多执行几次 直到返回true即可。如果多次执行仍然失败那只能退域重加了

Test-ComputerSecureChannel -Repair -Credential $cred

或:登录到域控服务器,输入命令:

netdom reset pcname /domain:mydomain
若成功,则会收到以下提示:
已重置从 pcname 到域 mydomain 的安全通道。与计算机 \pcname.mydomain 建立连接。

2>工作站和主域控制器之间的安全通道出现了问题所导致的,我们可以通过重置这连个安全通道来解决此问题,在DC上运行:netdomreset计算机名/domain:域名

作为域成员的每一台工作站或服务器,他们都与域控制器有一个离散的通信通道,该通道称之为安全通道

安全通道的密码和计算机的账户一起存储在所有的域控制器上,对于工作站,默认计算机账户密码的更换周期为30天,如果因某种原因导致计算机账户的密码和lsa机密不同步,netlogon服务就会记录下面一条或者两条错误信息:

从计算机domainmember设置的会话无法验证,安全数据库中引用的账户名称是domainmember$

netlogon事件ID3210

用法:
C:\NTRESKIT>nltest
Usage: nltest [/OPTIONS]
/SERVER: - Specify

/QUERY - Query netlogon service

/REPL - Force replication on BDC

/SYNC - Force SYNC on BDC

/PDC_REPL - Force UAS change message from PDC

/SC_QUERY: - Query secure channel for on

/SC_RESET: - Reset secure channel for on

/DCLIST: - Get list of DC’s for

/DCNAME: - Get the PDC name for

/DCTRUST: - Get name of DC is used for trust of

/WHOWILL:* [] - See if will log on

/FINDUSER: - See which trusted will log on

/TRANSPORT_NOTIFY - Notify of netlogon of new transport

/RID: - RID to encrypt Password with

/USER: - Query User info on

/TIME: - Convert NT GMT time to ASCII

/LOGON_QUERY - Query number of cumulative logon attempts

/TRUSTED_DOMAINS - Query names of domains trusted by workstation

/BDC_QUERY: - Query replication status of BDCs for

/SIM_SYNC: - Simulate full sync replication

/LIST_DELTAS: - display the content of given change log file

/LIST_REDO: - display the content of given redo log file

Additional Comments and Descriptions of the Nltest.exe Switches
/SERVER:: Remotes the Nltest.exe command to the specified server. If this switch is not specified, the command is run from the local computer.

/QUERY Queries the local or specified server for a healthy secure channel to a domain controller, and the status of Directory Services replication with the PDC. This is very helpful in determining the general status of the Netlogon service.

/REPL Force partial synchronization of the local or specified BDC.

/SYNC Forces a full, immediate synchronization of the local or specified BDC.

/PDC_REPL The specified PDC forces a change message to all BDCs.

/SC_QUERY: Verifies the secure channel in the specified domain for a local or remote workstation, server, or BDC. This can be run for a PDC if an explicit trust relationship exists between two domains and the trusted domain is specified.

/SC_RESET: Resets the secure channel between the local or remote workstation, server, or BDC. This can be run for a PDC if an explicit trust relationship exists between two domains and the trusted domain is specified.

/DCLIST: Lists all the domain controllers, PDC, and BDCs in a given domain.

/DCNAME: Lists the primary domain controller for a given domain.

/DCTRUST: Queries and tests the secure channel every time the command is executed. Specify the domain for the local or remote workstation, server, or BDC. This can be run for a PDC if an explicit trust relationship exists between two domains and the trusted domain is specified.

/WHOWILL: Queries the domain and indicates which Domain Controller has the account in their local user account database. This is very useful in determining if a given domain controller contains the user account. If the username specified is that of the currently logged on user, the user’s current password is NOT sent to the domain controller. This is helpful in determining if duplicate accounts exist across several domains.

/FINDUSER: Queries explicit trusted domains for the user specified. This is very useful when determining what trusted domain controller or what trusted domain out of several trusted domains will authenticate a user’s credentials when a Domain name is not specified in the Server Message Block (SMB) packet. Many down-level clients, such as Windows for Workgroups version 3.1 and the real-mode redirector in Windows 95, do not specify a domain name.

/USER: Displays many of the attributes for the specified user account that are maintained in the user account database.

/LOGON_QUERY Specifies the number of attempted logon queries at the console, or over the network.

/TRUSTED_DOMAINS Displays a list of explicit trusted domains.

/BDC_QUERY: List the backup domain controllers in the specified Domain and provides the state of their synchronization.

/LIST_DELTAS: List information from the Netlogon.chg file specifying changes to the user account database.

/LIST_REDO: List information from the Netlogon.chg file specifying changes to the user account database.

Example Output from Nltest.exe
As an example, suppose the TESTD domain trusts the ESS domain, and a computer running Windows NT Workstation called TEST3 is a member of the TESTD domain.

NLTEST can be used to show this trust relationship.
C:>nltest /trusted_domains
Trusted domain list:
ESS
The command completed successfully

To determine the domain controllers in the TESTD domain:
C:>nltest /dclist:testd
List of DCs in Domain testd
\TEST2 (PDC)
\TEST1
The command completed successfully

To determine the domain controllers in the ESS domain:
C:>nltest /dclist:ess
List of DCs in Domain ess
\NET1 (PDC)
The command completed successfully

Below are the secure channels between each domain controller in TESTD and a DC in the ESS domain.
C:>nltest /server:test1 /sc_query:ess
Flags: 0
Connection Status = 0 0x0 NERR_Success
Trusted DC Name \NET1
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully

C:>nltest /server:test2 /sc_query:ess
Flags: 0
Connection Status = 0 0x0 NERR_Success
Trusted DC Name \NET1
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully

The workstation that is a member of the TESTD domain has an implicit trust with a domain controller.
C:>nltest /server:test3 /sc_query:testd
Flags: 0
Connection Status = 0 0x0 NERR_Success
Trusted DC Name \TEST2
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully

To determine if a domain controller can authenticate a user account:
C:>nltest /whowill:ESS bob
[20:58:55] Mail message 0 sent successfully
(\MAILSLOT\NET\GETDC939)
[20:58:55] Response 0: S:\NET1 D:ESS A:bob (Act found)
The command completed successfully

C:>nltest /whowill:testd test
[21:26:13] Response 0: S:\TEST2 D:TESTD A:test (Act found)
[21:26:15] Mail message 0 sent successfully
(\MAILSLOT\NET\GETDC295)
The command completed successfully

NLTEST can be used to find a trusted domain that has a given user account.
C:>nltest /finduser:sweppler
Domain Name: ESS
Trusted DC Name \NET1
The command completed successfully

To verify the status of BDC synchronization:
C:>nltest /bdc_query:testd
Server : \TEST1
SyncState : IN_SYNC
ConnectionState : Status = 0 0x0 NERR_Success
The command completed successfully

Nltest.exe can also be used to synchronize the accounts database from a command line or a batch job.

To run the utility to synchronize the domain from a PDC, type:

C:\ nltest /PDC_Repl

To run the utility from a member server, backup domain controller, or Windows NT workstation, type

C:\ nltest /Server: /PDC_Repl

where PDCName is the actual name of the PDC, not the name of the domain)

You will see the successful synchronization events in Event Viewer on the primary domain controller, as well as the backup domain controllers.

服务恢复后














域控主机角色建议

常见的操作主机角色放置建议如下:

架构主机: 拥有架构主机角色的DC不需要高性能,因为在实际环境中不会经常对Schema进行操作的,除非是经常会对Schema进行扩展,不过这种情况非常的少。但要 保证可用性 ,否则在安装Exchange等会扩展AD架构的软件时会出错。

域命名主机:对占有域命名主机的DC也不需要高性能,在实际环境中也不会经常在森林里添加或者删除域的。但要保证高可用性是有必要的,以保证在添加删除当前林中域时可以使用。 一般建议由同一台DC承担架构主机与域域命名主机角色,并由GC放置在同一台DC中。

PDC模拟器:从上述PDC功能中可以看出,PDC模拟器是FSMO五种角色里任务最重的,必须保持拥有PDC的DC有高性能和高可用性。

RID主机:对于占有RID Master的域控制器,没有必要一定要求高性能,因为给其它DC分配RID池的操作不是经常性发生,但要求高可用性,否则在添加用户时出错。

基础架构主机:对于单域环境,基础架构主机实际上不起作用,因为基础架构主机主要作用是对跨域对象引用进行更新,对于单域,不存在跨域对象的更新。基础架构主机对性能和可用性方面的要求较低。基础架构主机的数据主要来自全局编录服务器(GC),全局编录服务器存储其他域的数据。由于基础架构主机和全局编录服务器不兼容,不要将这2个角色放同一台域控制器中。除非:域中只有一个域控制器,否则不应该将基础架构主机角色指派给全局编录服务器。 又或者域中所有的域控制器都存在全局编录,则无论哪个域控制器均可承担基础结构主机角色。

建议将PDC模拟器,RID主机以及基础结构主机放置在一台性能较好的DC中,且尽量不要配置成GC。

对以上FSMO规划总结如下:

1、占有Domain Naming Master角色的域控制器必须同时也是GC;

2、不能把Infrastructure Master和GC放在同一台DC上;

3、建议将Schema Master和Domain Naming Master放在森林根域的GC服务器上;

4、建议将Schema Master和Domain Naming Master放在同一台域控制器上;

5、建议将PDC Emulator、RID Master及Infrastructure Master放在同一台性能较好的域控制器上;

6、尽量不要把PDC Emulator、RID Master及Infrastructure Master放置在GC服务器上;

ntds(600)ntdsa:系统错误1453配额不足及恢复过程记录相关推荐

  1. python读写磁盘扇区数据有什么用_18-55.在Windows中,能够自动修复文件系统错误、扫描并尝试恢复坏扇区的操作是( )_学小易找答案...

    [单选题]sklearn实现KNN算法,使用的方法是? [单选题]以下机器加工方式,witness没有提供的是( ) [多选题]以下哪些是python常用的科学计算库? [多选题]16-68. 在Wi ...

  2. 600度近视眼恢复方法_近视600度还有救吗 怎么慢慢恢复

    近视600度还有救吗 怎么慢慢恢复2019-02-28 10:44:08文/叶丹 600度近视已经属于高度近视了,未成年人通过治疗,可以降低度数,但是不能完全恢复.成年人做近视手术的,可以通过近视手术 ...

  3. 软件安全性测试有那些

    软件安全性是一个广泛而复杂的主题,每一个新的软件总可能有完全不符合所有已知模式的新型安全性缺陷出现.要避免因安全性缺陷问题受各种可能类型的攻击是不切实际的.在软件安全测试时,运用一组好的原则来避免不安 ...

  4. 软件测试过程与方法(2):系统测试,验收测试

    系统测试 系统测试的定义 计算机软件在开发完毕投入运行前还应与系统中其他部分如硬件系统.数据信息等集成在一起,进行一系列系统集成再进行系统测试(System Testing),以保证各组成部分在真实的 ...

  5. 关于软件测试的一些基本知识

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 软件测试 ...

  6. SysErrorMessage 函数和系统错误信息表

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...

  7. delphi SysErrorMessage 函数和系统错误信息表 good

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...

  8. Windows 2003安全设置大全----2003系统错误大全解释

    附件 ASP错误大全 对初学者们有帮助,或许高手也会忘记,ASP错误大全 MicrosoftVBScript语*错误(0x800A03E9)-->内存不足 MicrosoftVBScript语* ...

  9. windows 系统错误码总结

    windows 错误码大全: 0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒绝访问. 6 句柄无效. 7 存储控制块被损坏. ...

  10. linux——管理系统设备之磁盘的加密、加密磁盘的挂载及磁盘阵列、配额

    一.磁盘加密 1.磁盘加密 命令祥解: [root@localhost ~]# cryptsetup luksFormat /dev/vdb1  ##对设备/dev/vdb1进行加密 WARNING! ...

最新文章

  1. redux-thunk使用教程
  2. windows默认共享的打开和关闭?
  3. 请解释为什么集合类没有实现Cloneable和Serializable接口?
  4. 详解C++11智能指针
  5. 行业牛人和开源软件改变技术世界
  6. java 泛型--桥方法
  7. 392. 判断子序列(javascript)
  8. spark提交到yarn_如何理解Spark应用的执行过程
  9. android 获取emui版本,华为手机为什么有EMUI版本和Android版本?
  10. python是一种什么类型的高级语言_python介绍 编程语言分类及对比 python解释器安装(多版本共存) 变量 数据类型(三种)...
  11. javascript : spket 视频教程
  12. Sqlmap常用命令总结及注入实战(Access、mysql)
  13. 抖音网上如何赚钱变现,有哪些具体的方法
  14. java nifty_java-jMonkey和Nifty中的线程?
  15. 【Python+Excel】批量操作Excel工作表和工作簿的5个实例
  16. 玩转 MATLAB 附加功能/硬件支持包安装
  17. Vant组件NavBar导航栏使用时去除下方白线问题
  18. 【学习笔记15】JavaScript的函数
  19. Linux AHCI驱动
  20. Jmeter使用教学

热门文章

  1. 北漂小斌和你分享北京大兴机场3dmax模型
  2. 第五届A/B组 地宫取宝 JAVA
  3. 我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,
  4. 吐血总结《Mysql从入门到入魔》,图文并茂
  5. 北京的购车摇号新政的概率分析
  6. 4.1.8 OS之文件保护(口令保护、加密保护、访问控制)
  7. 【数据结构和算法】爆肝三万字你必须知道的20个解决问题的技巧
  8. iOS 瘦身!一个让 50% 本地图片消失的方案
  9. java 农历日期工具类
  10. APP在后台启动Activity