AD 日常工作大多不是缺一條指令,而是先找對物件、確認 DN 與影響範圍。下面先放唯讀查詢,再放建立或修改;大量操作一律先用測試 OU 和 CSV 預覽。
環境與物件查詢
載入 AD 模組系統管理員 PowerShell
Import-Module ActiveDirectory用戶端需先裝 RSAT;錯誤時先查模組與網域連線。
查看目前網域PowerShell
Get-ADDomain | Format-List DNSRoot,NetBIOSName,DomainMode,PDCEmulator,RIDMaster,InfrastructureMaster先確認目前連到哪個網域及 FSMO 角色。
查看樹系資訊PowerShell
Get-ADForest | Format-List RootDomain,ForestMode,Domains,GlobalCatalogs,Sites多網域環境先確認查詢邊界。
列出所有 OUPowerShell
Get-ADOrganizationalUnit -Filter * | Sort-Object DistinguishedName | Select-Object Name,DistinguishedName建立或搬移物件前先複製正確 DN。
查單一使用者完整屬性PowerShell
Get-ADUser -Identity user01 -Properties *輸出含個資與內部資訊,不要直接貼到公開工單。
列出啟用中的帳號PowerShell
Get-ADUser -Filter 'Enabled -eq $true' -Properties LastLogonDate,Department | Select-Object SamAccountName,Department,LastLogonDateLastLogonDate 適合盤點,不是即時稽核的唯一依據。
找出鎖定帳號PowerShell
Search-ADAccount -LockedOut -UsersOnly | Select-Object Name,SamAccountName,LastLogonDate先找出持續送錯密碼的裝置或服務再解鎖。
查電腦物件PowerShell
Get-ADComputer -Filter * -Properties OperatingSystem,LastLogonDate | Select-Object Name,OperatingSystem,LastLogonDate久未登入不等於能直接刪除,還要對資產清冊。
建立與修改帳號
建立使用者並要求首次改密碼系統管理員 PowerShell
New-ADUser -Name '王小明' -SamAccountName wangxm -UserPrincipalName '[email protected]' -Path 'OU=Users,DC=corp,DC=example' -AccountPassword (Read-Host '初始密碼' -AsSecureString) -ChangePasswordAtLogon $true -Enabled $true先在測試 OU 驗證命名、UPN suffix 與授權流程。
更新部門與職稱系統管理員 PowerShell
Set-ADUser -Identity wangxm -Department '資訊部' -Title '系統工程師' -Office 'Kaohsiung'修改前先 Get-ADUser 留存原值。
停用離職帳號系統管理員 PowerShell
Disable-ADAccount -Identity wangxm停用前先依公司流程處理 mailbox、檔案、服務帳號與交接。
解鎖帳號系統管理員 PowerShell
Unlock-ADAccount -Identity wangxm若手機、排程或服務仍留舊密碼,解鎖後會再次被鎖。
查看密碼到期相關欄位PowerShell
Get-ADUser -Identity wangxm -Properties PasswordLastSet,PasswordNeverExpires,PasswordExpired | Select-Object SamAccountName,PasswordLastSet,PasswordNeverExpires,PasswordExpired不要只靠使用者口述判斷是否過期。
查看網域密碼原則PowerShell
Get-ADDefaultDomainPasswordPolicy細緻密碼原則另查 Fine-Grained Password Policy。
查看細緻密碼原則PowerShell
Get-ADFineGrainedPasswordPolicy -Filter * | Format-Table Name,Precedence,MinPasswordLength,MaxPasswordAge再用 Get-ADUserResultantPasswordPolicy 查特定使用者實際套用值。
查看使用者實際密碼原則PowerShell
Get-ADUserResultantPasswordPolicy -Identity wangxm沒有細緻原則時可能不回傳物件,改看網域預設。
群組、OU 與批次前預覽
建立安全性群組系統管理員 PowerShell
New-ADGroup -Name 'GG-Finance-Share-RW' -GroupScope Global -GroupCategory Security -Path 'OU=Groups,DC=corp,DC=example'先定義群組命名與 AGDLP/AGUDLP 權限模型。
加入群組成員系統管理員 PowerShell
Add-ADGroupMember -Identity 'GG-Finance-Share-RW' -Members wangxm高權限群組應經核准並保留稽核紀錄。
遞迴查看群組成員PowerShell
Get-ADGroupMember -Identity 'GG-Finance-Share-RW' -Recursive | Select-Object Name,SamAccountName,ObjectClass遞迴結果不會直接顯示成員來自哪一層巢狀群組。
查看使用者加入哪些群組PowerShell
Get-ADPrincipalGroupMembership -Identity wangxm | Sort-Object Name | Select-Object Name,GroupScope權杖還會受巢狀群組與 SID History 影響。
搬移物件前預演系統管理員 PowerShell
Move-ADObject -Identity 'CN=PC001,OU=Staging,DC=corp,DC=example' -TargetPath 'OU=Workstations,DC=corp,DC=example' -WhatIf確認 GPO、委派與軟體部署影響後才移除 -WhatIf。
預覽 CSV 批次資料PowerShell
Import-Csv .\new-users.csv | Select-Object -First 10 | Format-Table先檢查編碼、欄位、重複 SamAccountName 與空值,不要直接接 New-ADUser。
怎麼確認有做對
- 用 Get-ADUser/Get-ADGroupMember 回查建立或修改後的屬性。
- 以一般使用者實測登入與實際資源授權,不只看命令成功。
- 到安全性稽核與管理紀錄確認操作者、時間和變更範圍。
常見錯誤
- 把 Domain Admin 當日常帳號使用。
- 批次 CSV 沒預覽就直接建立、搬移或停用。
- 只解鎖帳號,沒有找出是哪台裝置持續送舊密碼。
- 直接授權給個人而不透過角色群組。
常見問題
AD 帳號一直被鎖,解鎖就好嗎?
不夠。先查鎖定時間,再找手機郵件、服務、排程、網路磁碟或舊電腦保存的密碼;來源沒清掉,帳號會立刻再鎖。
LastLogonDate 很久以前就能刪帳號嗎?
不能單靠這一欄。它有複寫與更新間隔,也可能是服務帳號;還要對人資、資產、應用程式與各 DC 的登入紀錄。
延伸閱讀
版本與官方文件
參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。
常見問題
AD 帳號一直被鎖,解鎖就好嗎?
不夠。先查鎖定時間,再找手機郵件、服務、排程、網路磁碟或舊電腦保存的密碼;來源沒清掉,帳號會立刻再鎖。
LastLogonDate 很久以前就能刪帳號嗎?
不能單靠這一欄。它有複寫與更新間隔,也可能是服務帳號;還要對人資、資產、應用程式與各 DC 的登入紀錄。