当前位置: 首页 > news >正文

10个例子解释如何用命令行管理AD(查询篇)

【本文乃原创,如有任何个人博客,商业网站或者媒体需要转载请与本人联系。经过许可后才能转发。
本人邮件delxu★msn.com】
【本文同时发表于本人live space: http://delxu.spaces.live.com/blog/cns!D04F87F9ED029F69!2327.entry,相同版权信息不再重复】
提示:本文提到的命令行在XP下必须安装Admin pack才会有。在Win7/Vista下要安装RSAT(Remote Server Administration Tools)

dsquery是一个好命令。它可以用来查询AD中各种对象。dsquery如果没查询到任何结果,将返回一个空行,没有报错信息。用法举例如下:

例1 根据用户名查用户帐号
C:\WINDOWS>dsquery user -name gp*
"CN=gp01,OU=staff,DC=domain,DC=com"
"CN=gp02,OU=staff,DC=domain,DC=com"

这里的user就是指查用户帐号,也可以换成Computer来查计算机帐号,换成group来查组,或者换成server来查域控制器;-name参数是指根据用户名来查,*是通配符;
这条命令的意思就是查询用户名以gp开头的所有用户帐号,并且返回其DN
 解释:DN,Distinguished Name,可辨识名称,是包含了全路径的AD对象名称。格式如下
        CN=david,OU=staff,DC=domain,DC=com
        这个DN说明的是一个叫david的对象,它位于domain.com域下的一个叫staff的OU中

例2 根据帐号描述(description)来查用户帐号

我们公司会将用户的工号放在用户描述中,常常需要通过工号来查用户帐号。可以用命令:
C:\WINDOWS>dsquery user -desc *00527*
"CN=david,OU=staff,DC=domain,DC=com"
这里就是查询description中含有00527的用户帐号DN,通配符*放在00527的前后各一个,说明只要中间含有00527即满足条件。

例3 根据状态查计算机帐号(不再激活n周的计算机帐号)
C:\WINDOWS>dsquery computer -inactive 7
"CN=computer01,OU=workstations,DC=domain,DC=com"
-inactive 后面的7说明7周

例4 根据禁用状态查用户帐号
C:\WINDOWS>dsquery user -disabled
"CN=gp01,OU=staff,DC=domain,DC=com"
"CN=gp02,OU=staff,DC=domain,DC=com"
"CN=david,OU=staff,DC=domain,DC=com"
-disabled 参数用来查被禁用的用户帐号

例5 查指定域下被禁用的帐号中名字中含有gp的
C:\WINDOWS>dsquery user -disabled -name gp* -d domain.com
"CN=gp01,OU=staff,DC=domain,DC=com"
"CN=gp02,OU=staff,DC=domain,DC=com"
-d 后面跟指定的域名
讲到这里大家有没有注意到,虽然dsquery是一个好命令,但是单独使用的时候返回的结果看起来很晕。因为返回的结果都是以DN形式存在的。
要想看的更加清楚,怎么办?比如我想返回的结果包括一个简单的用户帐号名和该帐号的描述。

dsget命令闪亮登场。
dsget命令可以用来查某个对象的具体属性。通常我们可以用管道符号将dsquery的结果传递给dsget。如果dsquery没查询到结果,那么就没有参数可以传递给dsget,dsget将会返回一次报错信息。

例6 返回某个用户的用户帐号名和描述(查名字中含有gp的用户)

C:\WINDOWS>dsquery user -name gp* | dsget user -samid -desc
  desc                              samid
  Group Policy Test account         gp01
  Group Policy Test account no.2    gp02
dsget succeeded
这里的samid就是Windows下的传统用户名。desc列下的就是描述

例7 作为例6的进一步,我们加上一个参数,用来列出帐号是否被禁用

C:\WINDOWS>dsquery user -name gp* | dsget user -samid -desc -disabled
  desc                              samid    disabled
  Group Policy Test account         gp01     yes
  Group Policy Test account no.2    gp02     yes
dsget succeeded
-disabled列出是否禁用的状态,yes表示该帐号已经被禁用,no表示未禁用。

例8 查某个用户组(查名字中含有cap字符串的所有Group)

C:\WINDOWS>dsquery group -name *cap* -d domain.com | dsget group -samid -secgrp -scope
  samid                scope        secgrp
  WG_CAP               universal    yes
  DCApps               global       yes
dsget succeeded
-secgrp 判断是否security group,若No则为Distribution Group
-scope显示是Domain Local组,Global组或者universal组
-samid显示组名

例9 查域中的域控制器中哪台是GC(Global Catagory)服务器

C:\WINDOWS>dsquery server -d domain.com | dsget server -dnsname -isgc
  dnsname                isgc
  CNDC01.domain.com      yes
  CNDC02.domain.com      no
dsget succeeded
最后,列一条很有用的命令

例10 查FSMO角色服务器

netdom query fsmo /d:[domainname]
C:\WINDOWS>netdom query fsmo /d:domain.com
Schema owner                CNDC01.domain.com
Domain role owner           CNDC01.domain.com
PDC role                    CNDC01.domain.com
RID pool manager            CNDC01.domain.com
Infrastructure owner        CNDC02.domain.com
The command completed successfully.

相关文章:

  • 网站色胆包天必须杀猴儆鸡
  • Silverlight 4实现在线大头贴程序,支持打印
  • 业务系统--业务架构转化成为IT应用的中间桥梁
  • 用来代替SQLSERVERAGENT的VBS脚本。
  • Windows Server 2003 DHCP 服务
  • [莓讯]blackberry潘多拉更新至1.1.3版本
  • Hadoop技术论坛
  • Delphi中怎样监视POP3信箱?
  • ubuntu的第三方站点remastersys无法访问
  • 业务系统设计之二:系统主控设计(上)
  • ROS 全自动算号器 1.1下载
  • 女性排毒养颜美容的14个技巧 - 健康程序员,至尚生活!
  • 汇编语言学习笔记-接收鼠标消息
  • IE新0day漏洞(979352)(又称极光零日漏洞)***将扩散
  • 苹果高清HD编辑系统
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [译] 怎样写一个基础的编译器
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • egg(89)--egg之redis的发布和订阅
  • idea + plantuml 画流程图
  • JS字符串转数字方法总结
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Markdown 语法简单说明
  • MySQL主从复制读写分离及奇怪的问题
  • nodejs:开发并发布一个nodejs包
  • session共享问题解决方案
  • Solarized Scheme
  • 复习Javascript专题(四):js中的深浅拷贝
  • 后端_MYSQL
  • 基于组件的设计工作流与界面抽象
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 智能合约Solidity教程-事件和日志(一)
  • Semaphore
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • $refs 、$nextTic、动态组件、name的使用
  • (1)bark-ml
  • (12)目标检测_SSD基于pytorch搭建代码
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)JAVA使用POI操作excel
  • (二十三)Flask之高频面试点
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • ***通过什么方式***网吧
  • . Flume面试题
  • .md即markdown文件的基本常用编写语法
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • ??javascript里的变量问题
  • @取消转义
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [Angular 基础] - 数据绑定(databinding)