AD 常用命令

dsadd /? – 添加对象的帮助。
dsget /? – 显示对象的帮助。
dsmod /? – 修改对象的帮助。
dsmove /? – 移动对象的帮助。
dsquery /? – 查找与搜索条件匹配的对象的帮助。
dsrm /? – 删除对象的帮助。

1、查看AD中禁用的计算机账户

Search-ADAccount -AccountDisabled -Searchbase “CN=xxx,DC=dcname,DC=com” -ComputersOnly

移动禁用计算机账户到指定的OU

Search-ADAccount -AccountDisabled -ComputersOnly | Move-ADObject -TargetPath “OU=Disable,OU=XXX,DC=daname,DC=com”

2、AD 禁用而邮箱未禁用

Get-User -RecipientTypeDetails UserMailbox -ResultSize unlimited | where {$_.UseraccountControl -like “*accountdisabled*”} | Export-Csv C:\域账户禁用_邮箱未禁用.csv -Encoding UTF8

3、查询指定OU 中的用户或者组

Get-ADGroup -Filter * -SearchBase “OU=TF制造中心,OU=TF04支撑体系,OU=同方北京产业楼,DC=ABC,DC=com” | Select-Object Name,SamAccountName

Get-ADUser -filter * -SearchBase “OU=TF质量中心,OU=TF无锡制造,OU=TF制造中心,OU=TF04支撑体系,OU=同方北京产业楼,DC=ABC,DC=com” | Select-Object Name,SamAccountName

4、添加用户到组

Add-ADGroupMember -Identity TF质量中心 -Members xiaoyufan,chenting

5、获取OU 信息

Get-ADOrganizationalUnit -filter * |Select-Object DistinguishedName |Export-Csv -Path ‘C:\LocalTemp\OUlist.csv’ -Encoding UTF8

6、导出 用户数据

get-aduser -Filter * -Properties * |Select-Object SamAccountName,Name,DisplayName,DistinguishedName,CN,Department,Description,EmailAddress,telephoneNumber,Title |Export-Csv -Path ‘C:\LocalTemp\Userlist.csv’ -Encoding UTF8

7、批量创建OU

function create_OU
{

param($ou_Name="" , $ou_Path="")
$ou_DSName=($ou_Name+","+$ou_Path).Split('"')[-1]
$check_Res=Get-ADOrganizationalUnit -Identity $ou_DSName

if($check_Res)
{
Write-Host “存在OU:”$ou_DSName
}
else
{
Write-Host “不存在OU:”$ou_DSName
NEW-ADOrganizationalUnit $ou_Name.split(“=”)[-1] –path $ou_Path
}
}

foreach ($ou_line in Get-Content ‘C:\Users\sa.hans.han\Desktop\OUlist.csv’)
{
$ou_path=”DC=cdtp,DC=com”
$ou_array=$ou_line.Split(‘,’)

Write-Host "**************开始******************"
foreach ( $ou_item in  $ou_array[($ou_array.Length-3)..0])
        {


        create_OU -ou_Name $ou_item  -ou_Path $ou_path
        $ou_path=$ou_item+','+$ou_path
         #sleep 3000
        }
        sleep 1
 }

8、创建用户
#判断用户是否存在,若不存在则创建用户
#判断用户所在OU是否正确,若不正确则移动至正确目录

foreach ($user in Import-Csv  'C:\Users\sa.hans.han\Desktop\Userlist.csv')
    {

            try {
               $user_exist= get-aduser  -Identity  $user.SamAccountName
               if ($user_exist.DistinguishedName.split(',',2)[1] -ne $user.DistinguishedName.split(',',2)[1].Replace("DC=innotron,DC=com","OU=AutoBulid_OU,DC=cdtp,DC=com") )
                {                  
                 Write-Host Warning: Move Accout :  $user.SamAccountName From $user_exist.DistinguishedName to $user.DistinguishedName.split(',',2)[1].Replace("DC=innotron,DC=com","OU=AutoBulid_OU,DC=cdtp,DC=com")
                 Move-ADObject -Identity $user_exist.DistinguishedName -TargetPath $user.DistinguishedName.split(',',2)[1].Replace("DC=innotron,DC=com","OU=AutoBulid_OU,DC=cdtp,DC=com")
                }
               else
               {
               Write-Host Info :账号正常 $user.SamAccountName
               }
               
                }
            catch {
    
                Write-Host Info:用户不存在 $user.SamAccountName
                $temp_UserPrincipalName=$user.SamAccountName+"@cdtp.com"
                Write-Host $temp_UserPrincipalName
                NEW-ADUSER -SamAccountName $user.SamAccountName  -UserPrincipalName $temp_UserPrincipalName -Name $user.Name    -DisplayName $user.DisplayName  -Department $user.Department -Description $user.Description -EmailAddress $user.EmailAddress -MobilePhone $user.telephoneNumber -Title $user.Title -path $user.DistinguishedName.split(',',2)[1].Replace("DC=innotron,DC=com","OU=AutoBulid_OU,DC=cdtp,DC=com")
                Write-Host Warning: create AD Account :  $user.SamAccountName  And Path is $user.DistinguishedName.split(',',2)[1].Replace("DC=innotron,DC=com","OU=AutoBulid_OU,DC=cdtp,DC=com")
                #sleep 10
         }
        }
  

Windows AD 域管理 PowerShell dsquery 命令 – 何星星 (hexingxing.cn)

AD 域的升级和迁移

建议以提升额外副本DC的方法进行升级和迁移

先决条件:

Windows Server 2019 或更高版本至少需要 Windows Server 2008 林功能级别。

Windows Server 2016至少需要 Windows Server 2003 林功能级别。

  • 查询当前域和林的功能级别:

Get-ADForest   | ft  ForestMode,SchemaMaster,DomainNamingMaster

Get-ADDomain|ft DomainMode,RIDMaster,InfrastructureMaster,PDCEmulator

  • 查询 fsmo 角色

Netdom  query  fsmo 

  • 域中DC操作系统查询:

Get-ADDomainController  -Filter  *  | Format-Table  Name,OperatingSystem,OperatingSystemVersion,IPv4Address

域的升级步骤建议

  1. 在对Active Directory进行任何重大更改之前备份系统状态,建议对持有FSMO 角色的DC 进行备份
  2. 使用新服务器成为现有域的成员,再提升为副本DC包括DNS,使用DCDIAG测试DC
  3. 将持有FSMO角色的DC迁移至新的DC
  4. 转移相关的服务例:DHCP
  5. 让旧的DC 离线一段时间并检查,如果一切正常降级旧的DC并脱域。
  6. 检查AD 的运行情况 Dcdiag / v / c / d / e / s:DCName> c:\ dcdiag.log
  7. Repadmin / showrepl DCName / verbose / all / intersite> c:\ repl.log