dsquery域帳號管理

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>dsqueryuser -desc *00527* 
"CN=david,OU=staff,DC=domain,DC=com"

這裏就是查詢description中含有00527的用戶帳號DN,通配符*放在00527的前後各一個,說明只要中間含有00527即滿足條件。

例3 根據狀態查計算機帳號(不再激活n周的計算機帳號)

C:\WINDOWS>dsquerycomputer -inactive 7 
"CN=computer01,OU=workstations,DC=domain,DC=com"

-inactive 後面的7說明7周


例4 根據禁用狀態查用戶帳號

C:\WINDOWS>dsqueryuser -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>dsqueryuser -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>dsqueryuser -name gp* | dsget user -samid -desc 
 desc                             samid 
  Group Policy Testaccount         gp01 
  Group Policy Test account no.2    gp02 
dsget succeeded

這裏的samid就是Windows下的傳統用戶名。desc列下的就是描述


例7 作爲例6的進一步,我們加上一個參數,用來列出帳號是否被禁用 
C:\WINDOWS>dsqueryuser -name gp* | dsget user -samid -desc -disabled 
 desc                             samid    disabled 
  Group Policy Testaccount         gp01    yes 
  Group Policy Test account no.2   gp02     yes 
dsget succeeded

-disabled列出是否禁用的狀態,yes表示該帳號已經被禁用,no表示未禁用。

例8 查某個用戶組(查名字中含有cap字符串的所有Group) 
C:\WINDOWS>dsquerygroup -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>dsqueryserver -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>netdomquery fsmo /d:domain.com 
Schemaowner               CNDC01.domain.com 
Domain role owner          CNDC01.domain.com 
PDCrole                   CNDC01.domain.com 
RID poolmanager           CNDC01.domain.com 
Infrastructure owner       CNDC02.domain.com 
The command completed successfully.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章