[TOC]
nltest 命令
描述:Nltest是内置于 Windows Server 2008 和 Windows Server 2008 R2 的命令行工具。
如果您有 AD DS 或 AD LDS 服务器角色安装,则可用,如果安装活动目录域服务工具的一部分的远程服务器管理工具 (RSAT)则也可以用。 若要使用nltest您必须从提升的命令提示符下运行nltest命令。
注意:要打开提升的命令提示符,请单击开始用鼠标右键单击命令提示符下,然后单击以管理员身份运行。
功能:获取域控制器的列表 强制远程关闭 查询信任的状态 测试在 Windows 域的信任关系和域控制器复制的状态 强制同步 Windows NT 版本 4.0 或更早版本的域控制器上的用户帐户数据库
Nltest可以测试和重置客户端之间进行登录的域控制器的 NetLogon 服务建立的安全通道, 使用 Kerberos 身份验证的客户端不能使用此安全通道。
查看登陆到的DC
描述:在查找域控的时候非常有用;1
2
3C:\Users\administrator.xxxIDC>set l
LOCALAPPDATA=C:\Users\administrator.xxxIDC\AppData\Local
LOGONSERVER=\\WLZXDC02 #关键点
nltest语法:1
2nltest [/域控服务器: <servername>] [<operation> [<parameter>]
您指定的远程域控制器上运行nltest 。 如果不指定此参数,在本地计算机,它是域控制器上将运行nltest 。
参数 | 说明
—|—
/query|您使用的安全通道上一次的状态报告。 (安全通道是 NetLogon 服务建立的。
/repl|强制与主域控制器 (PDC) 进行同步。 Nltest同步仅尚未复制到备份域控制器 (BDC) 的更改。 您可以使用此参数 Windows NT 4.0 Bdc 的不是用于 Active Directory 复制。 您必须具有管理凭据才能使用此参数。
/sync|强制与 PDC 立刻同步整个安全帐户管理器 (SAM) 数据库。 您可以使用此参数 Windows NT 4.0 Bdc 的不是用于 Active Directory 复制。 您必须具有管理凭据才能使用此参数。
/pdc_repl | 强制将同步通知发送到所有 Bdc PDC。 您可以使用此参数 Windows NT 4.0 Pdc 的不是用于 Active Directory 复制。 您必须具有管理凭据才能使用此参数。
/sc_query:
/sc_reset:
/sc_verify:
/sc_change_pwd:
/dclist:
/dcname:
/dsquerydns |查询所有特定于您指定的域控制器的 DNS 记录的最后一次更新的状态。
/bdc_query:
/sim_sync:
/list_deltas:
/cdigest:
/sdigest:
/shutdown: \<Reason> \<Seconds> |远程关闭服务器名称中指定的服务器。 一个字符串,用于在原因的值,指定关机的原因,您使用一个整数,指定的秒值在关机之前的时间量。 有关完整说明,请参阅InitiateSystemShutdown平台 SDK 文档。
/shutdown_abort |终止系统关机。
/whowill:
/finduser:
/dbflag:
/user:
/时间:
/logon_query | 查询累积的 NTLM 登录尝试次数在控制台或通过网络。
/dsgetdc: \<DomainName> | 查询的域名系统 (DNS) 服务器列表中的域控制器和其相应的 IP 地址。 此参数还联系,检查连接的每个域控制器。下面的列表显示了可用于筛选域控制器的列表,或在语法中指定备用名称类型的值。
- PDC: 只返回 PDC (Windows NT 4.0) 或域控制器指定为 PDC 仿真程序 (Windows 2000 及更高版本)。
- DS: 返回只有这些域控制器的 Windows 2000 及更高版本。
- DSP: 只返回 Windows 2000 和更高版本的域控制器。 如果查询找到这样的服务器,此值将返回 Windows NT 4.0 的域控制器。
- GC: 返回指定为全局编录服务器的域控制器。
- /KDC: 返回指定 Kerberos 密钥分发中心为这些域控制器。
- TIMESERV: 返回指定时间服务器为这些域控制器。
- GTTIMESERV: 返回指定服务器主机的时间为这些域控制器。
- NetBIOS: 在语法中的计算机名指定为 NetBIOS 名称。 如果您没有指定返回格式,域控制器可以返回 NetBIOS 或 DNS 格式。
- DNS: 完全限定域名 (Fqdn) 语法中指定的计算机名称。 如果您没有指定返回格式,域控制器可以返回 NetBIOS 或 DNS 格式。
- IP: 返回具有 IP 地址的域控制器。 此值,则返回使用 TCP/IP 作为其协议栈的域控制器。
- FORCE: 强制计算机针对 DNS 服务器,而不是查找信息的高速缓存中运行命令。
/dnsgetdc: \<DomainName> 查询 DNS 服务器的列表中的域控制器和其相应的 IP 地址。
下面的列表显示了可用于筛选的域控制器列表的值。
- /PDC: 返回只有这些域控制器的 Pdc (Windows NT 4.0) 或指定为 PDC 仿真程序。
- /GC: 返回指定为全局编录的域控制器。
- /KDC: 返回指定 Kerberos 密钥分发中心为这些域控制器。
- /WRITABLE: 返回可接受的目录数据库的更改这些域控制器。 此值,则返回所有 Active Directory 域控制器,但不是 Windows NT 4.0 Bdc。
- /LDAPONLY: 返回一个轻量目录访问协议 (LDAP) 应用程序运行的服务器。 服务器可以包含 LDAP 服务器不是域控制器。
- /FORCE: 强制计算机针对 DNS 服务器,而不是查找信息的高速缓存中运行命令。
- /SITE 站点名: 对返回的记录,首先列出与您指定的站点相关的记录进行排序。
- /SITESPEC: 筛选返回的记录来显示与您指定的站点相关的记录。 此操作只能与/SITE参数一起使用。
/dsgetfti: \<DomainName> [/UpdateTDO] 返回有关林间的信任关系的信息。 您可以使用此参数仅用于 Windows Server 2008 的域控制器的目录林根中的。 如果不存在任何林间的信任关系,此参数会返回错误。
- /UpdateTDO /UpdateTDO 值自动更新存储在本地林间的信任。
- /dsgetsite 返回所驻留的域控制器的站点的名称。
- /dsgetsitecov 返回包含域控制器的站点的名称。 域控制器可覆盖具有其自身的任何本地域控制器的站点。
- /parentdomain 返回父域的服务器的名称。
- /dsregdns 刷新所有特定于您指定的域控制器的 DNS 记录注册。
/dsderegdns: \<DnsHostName> 注销适用参数中指定的主机的 DNS 主机记录。下面的列表显示了可用于指定nltest注销的记录的值。
- /DOM: 指定的主机的 DNS 服务器上的记录进行搜索时使用的 DNS 域名。 如果不指定此值,则nltest使用的 DNS 域名适用参数的后缀。
- /DSAGUID: 删除目录系统代理 (DSA) 记录为基础的 GUID。
- DOMGUID: 删除 DNS 记录为基础的全局唯一标识符 (GUID)。
/domain_trusts 返回受信任域的列表。/主 /Forest /Direct_Out /Direct_In /All_Trusts /v。
下面的列表显示了可用于筛选列表的域的值。
- /Primary主/: 返回其计算机帐户所属的域。
- /Forest: 返回仅那些中主要域在同一个林中的域。
- /Direct_Out: 返回明确主域与受信任的域。
- /Direct_In: 返回显式信任主要域的域。
- /All_Trusts: 返回所有受信任域。
- /v: 显示详细输出,其中包括任何域 Sid 和可用的 Guid。
实际案例: WeiyiGeek.1
2
3
4
5
6
7
8
9
10
11
12
13
14#示例 0:显示域的信任关系下面的示例列出了为您的域建立的信任关系。
nltest /domain_trusts
#示例 1:验证域中的域控制器下面的示例使用/dclist参数来创建列表的域控制器的域 IDC
>nltest /dclist:xxxIDC
获得域“”中 DC 的列表(从“\\WLZXDC02.xxxx.CN”中)。
WLZXDC02.XXXIDC.CN [PDC] [DS] 站点: Default-First-Site-Name
WLZXDC01.XXXIDC.CN [DS] 站点: Default-First-Site-Name
此命令成功完成
#示例 2:用户的高级的信息下面的示例显示有关特定用户的详细的信息。
nltest /user:"TestAdmin"
#此命令将显示与以下类似的输出:
1 | #示例 3: 验证信任关系与特定的服务器 |
注意:DNS_DC 和 DNS_DOMAIN 标志指示中 (类似于垃圾回收或 TIMESERV,告诉您有关返回信息的域控制器的标志) 相对于该请求返回的信息的格式。 具体来说,它们的存在表示返回的域控制器的名称和域名,分别 DNS 格式。 它们不存在表示返回的域控制器的名称和域名 NetBIOS 格式。
1 | #示例5:查看返回当前域IP地址和包含用户 hvuser 的DC |

WeiyiGeek.
DSA操作不能继续因为一个DNS查找错误
- ⑴使用
Nltest /dsgetdc: /pdc /force /avoidself
命令确定是否返回了正确的主域控制器; - ⑵如果使用REPLMON或者REPADMIN命令报告此处有一个连接对象但是没有一个复制链接,问题可能出在KCC上;
- ⑶在主域控制器上运行以下命令:
nltest /DBFLAG:0x2000FFFF
和nltest /DSGETDC: /GC
,然后根据输出信息判断错误出在什么地方; - ⑷运行
nltest /dsgetdc: /gc /force
确定你能否联系一个GC; - ⑸在主域控制器和发生错误的服务器上检查“passWord last changed”参数。

WeiyiGeek.
setspn 命令
描述:读取、修改和删除Active Directory服务帐户的服务主体名称( SPN )目录属性。您可以使用SPNs查找运行服务的目标主体名称。您可以使用setspn查看当前SPN,重置帐户的默认SPN,以及添加或删除补充SPN;
适用于: Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows 8
setspn是内置于Windows Server 2008中的命令行工具。如果您安装了Active Directory域服务( AD DS )服务器角色,则可以使用它(需要提升权限)
语法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34setspn [parameter] accountname //其中 accountname 可以是目标计算机或用户帐户的名称或域名
setspn <Computer> [-l] [-r] [-d <SPN>] [-s <SPN>] [-?]
#参数:
1)编辑模式开关:
-R = 重置 HOST ServicePrincipalName
用法: setspn -R accountname
-A = 添加任意 SPN
用法: setspn -A SPN accountname
-S = 验证不存在重复项之后,添加任意 SPN
用法: setspn -S SPN accountname
-D = 删除任意 SPN
用法: setspn -D SPN accountname
-L = 列出注册到目标帐户的 SPN
用法: setspn [-L] accountname
2) 编辑模式修饰符:
-C = 指定 accountname 是计算机帐户
-U = 指定 accountname 是用户帐户
注意: -C 和 -U 具有排他性。如果两者均未指定,则工具会在存在此类计算机时将 accountname解释为计算机名称,不存在时则解释为用户名。
3) 查询模式开关:
-Q = 查询是否存在 SPN
用法: setspn -Q SPN
-X = 搜索重复的 SPN
用法: setspn -X
注意: 搜索重复项(尤其在林范围)可能会花费较长的时间,并占用大量内存。
-Q 将在每个目标域/林上执行。
-X 将返回存在于所有目标中的重复项。
不要求 SPN 在各个林之间唯一,但重复项可能会导致在进行身份验证时出现身份验证问题。
4)查询模式修饰符:
-P = 抑制控制台的进度,可在将输出重定向到文件时或在无人参与脚本中使用时使用。直到命令完成 时才有输出。
-F = 在林级别而不是域级别执行查询
-T = 在指定的域或林(同时使用 -F 时)中执行查询
用法: setspn -T domain (开关和其他参数)可以使用 "" 或 * 表示当前域或林。
注意: 可以与 -S 开关一起使用这些修饰符,以便在添加 SPN之前指定应在何处执行重复检查。
注意: -T 可以指定多次。
示例1:列出当前注册的SPN WeiyiGeek.1
2
3
4
5
6=> setspn -l WLZXDC02
Registered ServicePrincipalNames 用于 CN=WLZXDC02,OU=Domain Controllers,DC=XXXXIDC,DC=CN:
exchangeAB/WLZXDC02.XXXXIDC.CN
TERMSRV/WLZXDC02.XXXXIDC.CN
RestrictedKrbHost/WLZXDC02
RestrictedKrbHost/WLZXDC02.XXXXIDC.CN
示例2:重置默认注册的SPNs1
2
3
4
5=> setspn -r daserver1
Registering ServicePrincipalNames for CN=DASERVER1,CN=Computers,DC=reskit,DC=contoso,DC=com
HOST/daserver1.reskit.contoso.com
HOST/daserver1
Updated object
示例3.Add a new SPN 它将为计算机 “daserver1” 注册 SPN “http/daserver”1
2
3
4
5=> setspn -s http/daserver1.reskit.contoso.com daserver1
Registering ServicePrincipalNames for CN=DASERVER1,CN=Computers,DC=reskit,DC=contoso,DC=com
http/daserver1.reskit.contoso.com
Updated object
示例4:Remove an SPN 它将删除计算机 “daserver1” 的 SPN “http/daserver”1
2
3
4=> setspn -d http/daserver1.reskit.contoso.com daserver1
Unregistering ServicePrincipalNames for CN=DASERVER1,CN=Computers,DC=reskit,DC=contoso,DC=com
http/daserver1.reskit.contoso.com
Updated object
示例5:其他案例1
2
3
4setspn -F -S http/daserver daserver1 //它将为计算机 "daserver1" 注册 SPN "http/daserver" 如果林中不存在此类 SPN
setspn -U -A http/daserver dauser //它将为用户帐户 "dauser" 注册 SPN "http/daserver"
setspn -T * -T foo -X //它将报告此域和 foo 中 SPN 的所有重复的注册
setspn -T foo -F -Q */daserver //它将查找在 foo 所属的域控中注册的表单 */daserver 的所有 SPN
csvde
添加用户账户(或其他类型的对象),不能使用它修改或删除用户账户.事先将用户账户数据创建到纯文本文件( Text File )内,然后用户账户一次同时导入到 Active Directory 数据库.
XLSX快速构建DN:1
="CN="&A2&",OU=View Users,OU=View Group,DC=view,DC=WeiyiGeek,DC=cn"
1 | C:\Users\Administrator\Desktop>csvde -f OUTPUT.CSV -d "OU=View Users,OU=View Group,DC=view,DC=weiyigeek,DC=top" |
命令已成功完成
常用域成员导入字段
DN | objectClass | name | userAccountControl | sAMAccountName | userPrincipalName | physicalDeliveryOfficeName | givenName | Description|
|:—|:—|:—|:—|:—|:—|:—|:—|:—|:—|:—|:—|
DN树 | 对象类 | 登陆名称 | 禁用创建的用户 | 用户 | 用户主体名称 | 办公室号 | 名称 | 描述 |
CN=01,OU=View Users,OU=View Group,DC=view,DC=weiyigeek,DC=top | user | 01| 514 |01| 01@view.weiyigeek.top| 1909 | WeiyiGeek | 姓名:,房号: ·|
1 | # excel 处理 |
2、在powershell或者cmd中输入:csvde -i -f d:\user.csv(其中d:\user.csv是用户保存文件的路径);csvde详细的参数:http://technet.microsoft.com/zh-cn/library/cc772704(WS.10).aspx
指定memberof字段会产生SAM安全策略不能访问该属性;”由于该属性处于“安全帐户管理器” (SAM),不允许访问该属性。”, 我们可以在导入操作后选择对应用户进行添加到组。
1 | # 方式1:启用并设置用户相同密码(永不过期) |
批量创建群组
方法类似于创建用户,新建一个excel表包含以下字段,其中GroupType为8,表示通讯组,4为安全组
导出群组信息
使用下面命令导出所有群组即可。
csvde -f c:\exportgroups.csv -d “dc=domainname,dc=com” -r “(&(objectcategory=group)(objectClass=*))”
因为域的密码策略有长度和复杂度有要求,而记事本中又不能包括密码,因此导入的用户必须是禁用状态,所以userAccountControl的值设置为514,导入的用户禁用状态。512为启用状态
ldifde
:添加、侧除、修改用户账户(或其他类型的对象).您先将用户账户数据创建到纯文本文件内,然后将用户账户一次同时导入到 Active Directory 数据库
1 | http://support.microsoft.com/default.aspx?scid=kb;cn;237677 |
dsadd
用来添加用户账户(或其他类型的时象)、 dsmod . exe 用来修改用户账户、 dsrm . exe 用来删除用户账户.需要先创建批处理文件,使用这 3 个程序将要添加、修改或侧除的用户账户创建到此批处理文件中;
dsmod
dsquery
可以看到新增加的两个用户,但它们与其余三个不同,有个向下的箭头。这是因为CSVDE命令是无法导入密码的,所以导入的用户都是禁用状态。接下来我们批量设置密码、启用帐号,并设置密码永不过期。使用以下命令:(参考http://technet.microsoft.com/zh-tw/library/cc755470#BKMK_6、http://technet.microsoft.com/zh-cn/library/cc755655(WS.10).aspx)1
dsquery user "ou=T0500_客户,ou=IT,dc=weiyigeek,dc=top" | dsmod user -pwd 123@abc -pwdneverexpires yes –disabled no
dsrm
wbadmin
https://www.it610.com/article/3289794.htm
https://blog.csdn.net/zgeyzq/article/details/2326075
http://www.360doc.com/content/17/1121/04/50391_705724631.shtml