AD上可以查詢使用者帳號,但要匯出使用者帳號似乎不是那麼方便,
本篇記錄一下最近使用「dsquery Command」去查詢及匯出 AD使用者的操作步驟。
▼dsquery 的使用條件是?
要使用 「dsquery command」一般在 AD環境內可以直接使用,若是成員伺服器則需先安裝 AD DS管理工具。
▼如何使用 dsquery help?
我們可以開啟「命令提式字元」使用 dsquery /? 來查詢使用方法。
接著你可以再根據以下要搜尋的條件再去下 help:
dsquery computer - 尋找目錄中的電腦。
dsquery contact -
尋找目錄中的連絡人。
dsquery subnet - 尋找目錄中的子網路。
dsquery
group - 尋找目錄中的群組。
dsquery ou - 尋找目錄中的組織單位。
dsquery
site - 尋找目錄中的站台。
dsquery server - 尋找目錄中的 AD DCs/LDS
執行個體。
dsquery user - 尋找目錄中的使用者。
dsquery quota - 尋找目錄中的配額規格。
dsquery partition -
尋找目錄中的分割。
dsquery * - 使用一般 LDAP 查詢,尋找目錄中的任何物件。
例如:若要查詢「目錄中的使用者」則可以 dsquery user /? 來查詢使用方法。
下面列出 「dsquery user」 常用的幾個參數:
{<StartNode> | forestroot | domainroot}
👉 搜尋的起始節點: 樹系根目錄、網域根目錄或 DN為 <StartNode>
的節點。可以是"forestroot"、"domainroot" 或物件 DN。如果指定
"forestroot",則會透過通用類別目錄進行搜尋。預設值: domainroot。
-o {dn | rdn | upn | samid}
👉 指定輸出格式。預設值: 辨別名稱 (DN)。
-name <Name>
👉 尋找名稱符合 <Name> 篩選器指定的使用者(如 "jon*" 或 "*ith" 或
"j*th")。
-desc <Description>
👉 尋找描述符合 <Description> 篩選器指定的使用者 (如 "jon*"、"*ith" 或"j*th")。
-upn <UPN>
👉 尋找 UPN 符合 <UPN> 篩選器指定的使用者。
-inactive <NumWeeks>
👉 尋找至少 <NumWeeks> 週未作用 (未登入) 的使用者。
-disabled
👉 尋找其帳戶已停用的使用者。
-limit <NumObjects>
👉 指定要傳回與指定準則相符的物件數目,其中<NumObjects> 是要傳回的物件數目。如果<NumObjects> 的值是 0,則會傳回所有相符的物件。如果未指定這個參數,則預設會顯示前100 個結果集。
{-uc | -uco | -uci}
👉-uc 指定管道的輸入或輸出格式都是 Unicode。
-uco
指定管道或檔案的輸出格式是 Unicode。
-uci 指定管道或檔案的輸入格式是
Unicode。
▼微軟範例參考 (你也可以下 help去看)
尋找指定組織單位 (OU) 中名稱開頭為 "jon" 且其帳戶已停用登入功能的所有使用者,同時顯示其使用者主要名稱 (UPN):
dsquery user ou=Test,dc=microsoft,dc=com -o upn -name jon* -disabled
尋找僅位於目前網域中、名稱結尾為 "smith" 且 3 週未作用的所有使用者,同時顯示其 DN:
dsquery user domainroot -name *smith -inactive 3
尋找組織單位中指定為 ou=sales,dc=microsoft,dc=com 的所有使用者,同時顯示其 UPN:
dsquery user ou=sales,dc=microsoft,dc=com -o upn
▼實作範例
範例一、當組織單位(HQ)下還有組織單位(Sales)時,並想匯出至
txt檔怎麼下?
尋找組織單位中指定為 ou=sales,ou=hq,dc=itorz324,dc=com,dc=tw
的所有使用者,同時顯示其 UPN:並輸出至 c:\temp\sales-user-list.txt
dsquery user ou=sales,ou=hq,dc=itorz324,dc=com,dc=tw -o upn
>c:\temp\sales-user-list.txt
你會發現輸出後下方出現訊息:
「Dsquery 已經達到預設的 100 個結果的顯示上限; 要顯示更多結果的話,請使用 -limit 選項。」
通常超過100筆我們會添加參數 👉 limit 0
dsquery user ou=sales,ou=hq,dc=itorz324,dc=com,dc=tw -o upn -limit 0 >c:\temp\sales-user-list.txt
範例二、想匯出 domain下所有 user和相關欄位屬性至 txt檔
dsquery * domainroot -filter "(&(objectClass=person)(objectClass=user)(!objectClass=computer)(cn=*))" -attr cn description mail -uco -limit 0 >c:\temp\domain-user.txt
範例三、想匯出 ou=sales下所有 user和相關欄位屬性至 txt檔
dsquery * ou=sales,dc=itorz324,dc=com,dc=tw -filter
"(&(objectClass=person)(objectClass=user)(!objectClass=computer)(cn=*))"
-attr cn description mail -uco -limit 0 >c:\temp2\DomainUser-list.txt
▼語法說明:
dsquery * ou=sales,dc=itorz324,dc=com,dc=tw
要查詢網域為
itorz324.com.tw;ou為sales的所有資訊
-filter
"(&(objectClass=person)(objectClass=user)(!objectClass=computer)(cn=*))"
過濾所查詢的資料,物件類別必須是個人使用者帳號,且排除電腦帳號,欄位cn為全部。
-attr
cn description mail
要顯示出來的欄位有 cn、description、mail
-uco
資料要導出到pipe
或匯到檔案中
-limit 0
不限制資料的數量 ,傳回所有筆數
▼若要得知匯出的欄位屬性可至 AD查詢:
檢視 > 進階功能點選 >屬性編輯器
▼常用欄位屬性
▼參考網站來源
👉 IT 小僧
👉
微軟文件
👉 查欄位名稱
▼你或許也感興趣
👉 Windows Command 教學 ~"echo" 指令如何使用?
👉 GPO 群組原則應用 | 解決 Windows 刪除檔案不提示問題。
👉
使用fsck Command 修復快掛掉 CentOS 檔案系統。
沒有留言:
張貼留言