文章轉自Live空間(http://delxu.spaces.live.com/blog/cns!D04F87F9ED029F69!2583.entry)和51cto技術博客(http://delxu.blog.51cto.com)首發。轉發時務必表明出處,順便給博主做個廣告,文章寫的真的很好,深入淺出,期待看到更好的博文,再次表示對博主的感謝!!!
12/8/2009
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
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"
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
這條命令的意思就是查詢用戶名以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"
"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"
"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"
"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"
"CN=gp01,OU=staff,DC=domain,DC=com"
"CN=gp02,OU=staff,DC=domain,DC=com"
-d 後面跟指定的域名
講到這裏大家有沒有注意到,雖然dsquery是一個好命令,但是單獨使用的時候返回的結果看起來很暈。因爲返回的結果都是以DN形式存在的。
要想看的更加清楚,怎麼辦?比如我想返回的結果包括一個簡單的用戶帳號名和該帳號的描述。
dsget命令閃亮登場。
dsget命令可以用來查某個對象的具體屬性。通常我們可以用管道符號將dsquery的結果傳遞給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
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
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
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顯示組名
-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
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]
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.
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.