Ustvarite in upravljajte zapise in cone DNS iz PowerShell-a

Skrbnik strežnika Windows DNS lahko s pomočjo starega pripomočka za upravljanje strežnika, območij DNS in zapisov Dnscmd, ali izkoristite PowerShell modul DNSServer. V tem članku bomo zajeli osnovno operacijo množičnega ustvarjanja, spreminjanja in brisanja različnih zapisov in con DNS z uporabo PowerShell.

Vsebina:

  • PowerShell modul - DNSServer
  • Upravljanje območij DNS iz PowerShell-a
  • Upravljanje zapisov DNS s pomočjo modula DNSServer
  • Kako dodati več zapisov A / PTR v območje DNS s pomočjo PowerShell-a?

PowerShell modul - DNSServer

PowerShell modul DNSServer del RSAT. V sistemu Windows 10 je RSAT nameščen ločeno, v sistemu Windows Server pa lahko modul namestite prek upravitelja strežnikov (Orodja za upravljanje vlog -> Orodja za strežnik Dns).

Preverite, ali ima sistem modul PoSh DNSServer:

Get-modul DNSServer -ListAvailable

V njem lahko navedete ukaze (v različici modula v operacijskem sistemu Windows Server 2012 R2 je na voljo več kot 100 ukazov):

Get-modul DNSServer

Upravljanje območij DNS iz PowerShell-a

Na DNS strežniku naštejemo cone (v našem primeru je to krmilnik domene):

Get-DnsServerZone -ComputerName dc01

Če želite dodati novo primarno območje DNS z imenom contoso.local, zaženite ukaz:

Add-DnsServerPrimaryZone -Name contoso.local -ReplicationScope "Forest" -PassThru

Kot lahko vidite, je bila ustvarjena primarna cona DNS, ki je integrirana v Active Directory (isDsIntegrated = True).

Ustvarite lahko območje povratnega iskanja (območje zaklepanja):

Domena Add-DnsServerPrimaryZone -NetworkId "192.168.1.0/24" -ReplicationScope Domain

Če želite novo cono sinhronizirati z drugimi DC-ji v domeni, zaženite ukaz:

Sync-DnsServerZone -passthru

Vpišemo vnose v novi coni DNS (prazna je):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

Če želite izbrisati cono, uporabite ukaz:

Remove-DnsServerZone -Name contoso.local -ComputerName dc01

Ta ukaz bo izbrisal tudi vse obstoječe zapise DNS na območju..

Upravljanje zapisov DNS s pomočjo modula DNSServer

Če želite v določenem območju DNS ustvariti nov zapis A, uporabite ukaz:

Add-DnsServerResourceRecordA -Name rds1 -IPv4Adress 192.168.1.30 -ZoneName contoso.local -TimeToLive 01:00:00

Če želite v povratni pas dodati zapis PTR, lahko v prejšnjem ukazu dodate parameter -UstvariPtr ali ročno ustvarite kazalec z ukaznim imenom Add-DNSServerResourceRecordPTR:

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

Če želite dodati vzdevek (CNAME) za določen zapis A uporabite ukaz:

Add-DnsServerResourceRecordCName -ZoneName contoso.local -Name RDSFarm -HostNameAlias ​​rds1.contoso.local

Če želite spremeniti naslov IP tega zapisa A, morate uporabiti precej zapleteno shemo, ker ne morete neposredno spremeniti IP naslova zapisa DNS.

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

Zdaj spremenite lastnost IPV4Address objekta $ NewADNS

$ NewADNS.RecordData.IPv4Address = [System.Net.IPAddress] :: razčlenitev ('192.168.1.230')

Zdaj spremenite IP naslov vnosa z uporabo Set-DnsServerResourceRecord:

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

Preverite, ali se je IP naslov vnosa spremenil:

get-DnsServerResourceRecord -Name rds1 -ZoneName contoso.local

DNS zapise iste vrste lahko navedete tako, da v argumentu navedete vrsto -Rtipype. Seznam zapisov CNAME na območju:

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

Filter lahko uporabite tudi za različne parametre zapisov DNS z uporabo Where-Object. Na primer navajamo zapise A, ki imajo v imenu besedno zvezo rds.

Get-DnsServerResourceRecord -ZoneName contoso.local -RRType A | Kjer-objekt HostName podoben "* rds *"

Če želite odstraniti zapise v DNS, uporabite ukazni ukaz Remove-DnsServerResourceRecord..

Če želite na primer izbrisati zapis CNAME, zaženite:

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

Če želite izbrisati zapis A:

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

Če želite odstraniti PTR zapis v obratni coni:

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

Kako dodati več zapisov A / PTR v območje DNS s pomočjo PowerShell-a?

Recimo, da morate hkrati ustvariti veliko zapisov A v določenem območju neposrednega iskanja DNS. Lahko jih začnete drug za drugim z ukazom Add-DnsServerResourceRecordA, vendar je enostavnejše in hitrejše vnašanje številk A na seznamu iz datoteke.

Ustvarite besedilno datoteko NewDnsRecords.txt z imeni in IP naslovi, ki jih želite dobiti. Oblika datoteke je naslednja:

HostName, IPAdress

Če želite ustvariti zapise v coni contoso.local glede na podatke iz datoteke TXT / CSV, uporabite ta skript PowerShell:

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

Če želite takoj snemati v obratni coni, dodajte ukaz Add-DNSServerResourceRecordA v ukaz -UstvariPtr.

Zdaj uporabite konzolo upravitelja DNS (dnsmgmt.msc) ali ukaz Get-DnsServerResourceRecord -ZoneName contoso.local preverite, ali so vsi zapisi uspešno ustvarjeni.

Če morate množično ustvarjati zapise PTR v območju povratnega iskanja, ustvarite datoteko text / csv z naslednjo strukturo

oktet, 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. 

Nato zaženite ta skript:

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

Preverite, ali se PTR zapisi pojavijo v podanem obratnem območju DNS..