AD 集成区域

  1. DNS的默认应用程序分区:当林中的第一台服务器升级为DC并安装DNS时,那么就会在ADDS 中创建2个新应用程序目录分区,DomainDnsZones 分区和  ForestDnsZones 分区. DNS zone information is then stored in these directory partitions, rather than in a text file on the DNS server hard disk。
  2. 每个分区有不同的信息和复制配置,DomainDnsZones 分区包含所有的DC记录,所有记录除_msdcs记录都包含在DomainDnsZones 中,被复制到域中运行DNS服务的所有DC上。 ForestDnsZones 分区复制到林中所有的DC运行的DNS服务器上,ForestDnsZones 包含DC和客户端所需要的用于定位林中其他域中DC服务的信息。ForestDnsZones分区根据GUID列出整个林中所有的DC也列出林中所有的GC,_msdcs区域也存储在ForestDnsZones分区中。
  3. ADDS和DNS命名空间集成:确保DNS 命名空间与AD DS 设计正确集成,并确保所有DC SRV 记录都在DNS 中注册 ,为了让林中不同DC 可以互相复制,它们必须可以在DNS中互相找到对方。

Get-DnsServerDirectoryPartition 查询Dns目录分区

AD 和 DNS

ADDS 需要DNS 来提供定位网络上的资源,没有可靠的DNS基础架构,活动目录复制就会失败,客户端则无法登录网络,Exchange无法发送邮件,如果打算管理ADDS就需要彻底了解ADDS 集成DNS实现。

Active Directory 域服务 (AD DS) 使用 DNS 作为其域控制器定位机制。 在执行任何主体 Active Directory 操作(例如身份验证、更新或搜索)时,计算机将会使用 DNS 来查找 Active Directory 域控制器。 此外,域控制器也使用 DNS 来查找彼此。

ADDS  使用用SRV (服务资源记录)的缩写定义域控制器,所有域控制器都在DNS中注册SRV记录,这些记录将计算机标识为提供AD DS相关服务。

SRV记录格式:

Service._Proto.Name TTL Class SRV Priority Weight Port Target

Service: 服务名称,前缀“_”是为防止与DNS Label(普通域名)冲突。

Proto:   服务使用的通信协议,_TCP、_UDP、其它标准协议或者自定义的协议。

Name:    提供服务的域名。

TTL:     缓存有效时间。

CLASS:   类别

Priority: 该记录的优先级,数值越小表示优先级越高,范围0-65535。

Weight:   该记录的权重,数值越高权重越高,范围0-65535。    

Port:     服务端口号,0-65535。

Target:   host地址。

SRV 记录位置

Get-content   C:\Windows\System32\config\netlogon.dns

查看DNS中注册的SRV 记录

Get-DnsServerResourceRecord  -ZoneName DomainName(例:abc.com)  -RRType srv

为了使DNS服务器能够支持Active Directory,服务器需要支持服务(SRV)资源记录类型和动态更新协议。Active Directory使用DNS作为域控制器的定位机制,使网络上的计算机能够获取域控制器的IP地址。在Active Directory安装期间,服务(SRV)和地址(A)资源记录在DNS中动态注册。域控制器定位器(Locator)机制的功能需要这两种类型的记录。

要在域或林中查找域控制器,客户端需要在DNS中查询域控制器的SRV和A DNS资源记录。资源记录向客户端提供域控制器的名称和IP地址。在此上下文中,SRV和A资源记录称为定位器DNS资源记录。

将域控制器添加到林中时,将使用该域控制器的定位器DNS资源记录更新DNS服务器上承载的DNS区域。因此,DNS区域必须允许动态更新(RFC 2136),托管该区域的DNS服务器必须支持SRV资源记录(RFC 2782)才能播发Active Directory目录服务。

至少,DNS服务器必须支持SRV资源记录;但可以手动将SRV资源记录添加到DNS。

安装Active Directory后,可以在域控制器的以下位置找到这些记录:systemroot\System32\Config\Netlogon.dns

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)