Hozzon létre és kezeljen DNS-rekordokat és zónákat a PowerShellből

A Windows DNS szerver adminisztrátora a régi jó segédprogrammal kezelheti a szervert, a DNS zónákat és a rekordokat dnscmd, vagy használja ki a PowerShell modult DNSServer. Ebben a cikkben a DNS-rekordok és zónák tömeges létrehozása, módosítása és törlése alapvető műveleteit fogjuk bemutatni a PowerShell használatával.

Tartalom:

  • PowerShell modul - DNSServer
  • DNS-zónák kezelése a PowerShell segítségével
  • Kezelje a DNS-rekordokat a DNSServer modul segítségével
  • Több A / PTR rekord hozzáadása a DNS-zónához a PowerShell használatával?

PowerShell modul - DNSServer

PowerShell modul DNSServer az RSAT része. Windows 10 rendszeren az RSAT külön van telepítve, a Windows Server rendszeren pedig a Server Manager segítségével telepítheti a modult (Szerepfelügyeleti eszközök -> Dns szerver eszközök).

Ellenőrizze, hogy a rendszer rendelkezik-e PoSh DNSServer modullal:

Get-Modul DNSServer -ListAvailable

A parancsokat felsorolhatja (a Windows Server 2012 R2 modulverziójában több mint 100 parancs érhető el):

Get-Modul DNSServer

DNS-zónák kezelése a PowerShell segítségével

Felsoroljuk a DNS-kiszolgálón lévő zónákat (esetünkben ez a tartományvezérlő):

Get-DnsServerZone -ComputerName dc01

Új contoso.local elnevezésű elsődleges DNS-zóna hozzáadásához futtassa a következő parancsot:

Add-DnsServerPrimaryZone -Név contoso.local -ReplicationScope "Forest" -PassThru

Mint láthatja, létrejött egy elsődleges DNS-zóna, amely integrálva van az Active Directory-ba (isDsIntegrated = True).

Megadhat egy fordított keresési zónát (Lockup Zone):

Add-DnsServerPrimaryZone -NetworkId "192.168.1.0/24" -ReplicationScope domain

Az új zóna szinkronizálásához a tartomány többi DC-jével futtassa a következő parancsot:

Sync-DnsServerZone -passthru

Az új DNS-zónában a bejegyzéseket soroljuk fel (üres):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

Zóna törléséhez használja a következő parancsot:

Remove-DnsServerZone -Name contoso.local -ComputerName dc01

Ez a parancs a zónában lévő összes meglévő DNS rekordot is törli..

Kezelje a DNS-rekordokat a DNSServer modul segítségével

Új A rekord létrehozásához a megadott DNS-zónában használja a következő parancsot:

Add-DnsServerResourceRecordA -Név rds1 -IPv4Cím 192.168.1.30 -ZoneName contoso.local -TimeToLive 01:00:00

PTR-rekord hozzáadásához a fordított zónába az előző parancsban hozzáadhat egy paramétert -CreatePtr vagy manuálisan hozzon létre egy mutatót az Add-DNSServerResourceRecordPTR parancsmaggal:

Add-DNSServerResourceRecordPTR -ZoneName 1.168.192.in-addr.arpa -Name 30 -PTRDomainName rds1.contoso.local

Álnév hozzáadásához (CNAME) egy adott A rekordhoz használja a következő parancsot:

Add-DnsServerResourceRecordCName -ZoneName contoso.local -Név RDSFarm -HostNameAlias ​​rds1.contoso.local

Ennek az A rekordnak az IP címének megváltoztatásához meglehetősen bonyolult sémát kell használnia, mert nem módosíthatja közvetlenül a DNS-rekord IP-címét.

$ NewADNS = get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local -ComputerName dc01
$ OldADNS = get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local -ComputerName dc01

Most változtassa meg a $ NewADNS objektum IPV4Address tulajdonságát

$ NewADNS.RecordData.IPv4Address = [System.Net.IPAddress] :: elemzés ('192.168.1.230')

Most változtassa meg a bejegyzés IP-címét a Set-DnsServerResourceRecord használatával:

Set-DnsServerResourceRecord -NewInputObject $ NewADNS -OldInputObject $ OldADNS -ZoneName contoso.local -ComputerName dc01

Ellenőrizze, hogy a bejegyzés IP-címe megváltozott:

get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local

Az azonos típusú DNS rekordokat felsorolhatja, ha megadja az argumentumban a típust -RRType. Sorolja fel a CNAME rekordokat a zónában:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName contoso.local -RRType CNAME

Szűrőt is használhat a DNS-rekordok különféle paramétereire a Where-Object használatával. Például olyan A rekordokat sorolunk fel, amelyeknek a neve az rds kifejezést tartalmazza.

Get-DnsServerResourceRecord -ZoneName contoso.local -RRType | Hol-Object HostName-szerű "* rds *"

A DNS-ben lévő rekordok eltávolításához használja az Remove-DnsServerResourceRecord parancsmagot..

Például egy CNAME rekord törléséhez futtassa:

Remove-DnsServerResourceRecord -ZoneName contoso.local -RRType CName -Name RDSFarm

A rekord törlése:

Remove-DnsServerResourceRecord -ZoneName contoso.local -RRType A -Name rds1 -Force

PTR-rekord eltávolítása a fordított zónából:

Remove-DnsServerResourceRecord -ZoneName “1.168.192.in-addr.arpa” -RRType “PTR” -Name “30”

Több A / PTR rekord hozzáadása a DNS-zónához a PowerShell használatával?

Tegyük fel, hogy egyszerre sok A rekordot kell létrehoznia egy adott DNS közvetlen keresési zónában. Egyszerre elindíthatja őket az Add-DnsServerResourceRecordA paranccsal, de könnyebb és gyorsabb az A bejegyzések tömeges indítása egy listából egy fájlból.

Hozzon létre egy NewDnsRecords.txt szöveges fájlt a megszerezni kívánt nevekkel és IP-címekkel. A fájl formátuma a következő:

HostName, IPAddress

A rekordok létrehozásához a contoso.local zónában, egy TXT / CSV fájl adatai alapján, használja a következő PowerShell szkriptet:

Import-CSV "C: \ PS \ NewDnsRecords.txt" | %
Add-DNSServerResourceRecordA -ZoneName contoso.local -Name $ _. "HostName" -IPv4Address $ _. "IPAddress"

Ha azonnal fel akar venni a fordított zónában, akkor adja hozzá az Add-DNSServerResourceRecordA paramétert a parancshoz -CreatePtr.

Most használja a DNS Manager konzolt (dnsmgmt.msc) vagy a parancsot Get-DnsServerResourceRecord -ZoneName contoso.local ellenőrizze, hogy minden A rekord sikeresen létrejött-e.

Ha masszív PTR-rekordokat kell létrehoznia a fordított keresési zónában, hozzon létre egy text / csv fájlt a következő struktúrával

oktett, hostName, zoneName 65, rds5.contoso.local, 1.168.192.in-addr.arpa 66, rds6.contoso.local, 1.168.192.in-addr.arpa 67, rds7.contoso.local, 1.168.192 .in-addr.arpa. 

Ezután futtassa ezt a szkriptet:

Import-CSV "C: \ PS \ NewDnsPTRRecords.txt" | %
Add-DNSServerResourceRecordPTR -ZoneName $ _. "ZoneName" -Name $ _. "Octet" -PTRDomainName $ _. "HostName"

Ellenőrizze, hogy a PTR-rekordok megjelennek-e a megadott fordított DNS-zónában..