10個例子解釋如何用命令行管理AD(查詢篇)

文章轉自Live空間(http://delxu.spaces.live.com/blog/cns!D04F87F9ED029F69!2583.entry)和51cto技術博客(http://delxu.blog.51cto.com)首發。轉發時務必表明出處,順便給博主做個廣告,文章寫的真的很好,深入淺出,期待看到更好的博文,再次表示對博主的感謝!!!
12/8/2009

10個例子解釋如何用命令行管理AD(查詢篇)

【本文乃原創,同時發表於本人51cto博客http://delxu.blog.51cto.com/975660/240171。如有任何個人博客,商業網站或者媒體需要轉載請與本人聯繫。經過許可後才能轉發。本人聯繫方式:delxu★msn.com】
http://delxu.spaces.live.com/blog/cns!D04F87F9ED029F69!2327.entry
提示:本文提到的命令行在XP下必須安裝Admin pack纔會有。在Win7/Vista下要安裝RSAT(Remote Server Administration Tools)
例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
例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:\>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:\>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.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章