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