[Powershell] zonetransfer aanzetten op meerdere AD DNS zones

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 22-09 11:02

BlaTieBla

Vloeken En Raak Schieten

Topicstarter
Ik zit met een DNS migratie binnenkort van Windows 2016 server DNS naar een ander platform. Het gaat hierbij om meer dan 200 domeinen die binnen het forest gehost worden (de reverse lookup zones nog niet eens meegeteld).
Voor de migratie is tooling aanwezig, maar die vereist dat zone transfer is toegestaan op de te migreren zones.
Met de hand alle zones langs gaan is geen optie dus dacht ik aan Powershell, echter ben ik niet bekend met Powershell qua syntax e.d..

Er lijkt een commando te zijn dat je in geheel zone transfers toestaat op de server zodat je niet alle zones langs zou hoeven;
PowerShell:
1
2
Add-DnsServerClientSubnet -Name "DestHost" -IPv4Subnet "192.168.40.11/32" -PassThru | Format-List *
Add-DnsServerZoneTransferPolicy -Name "Migration" -Action IGNORE -ClientSubnet "eq,DestHost" -ComputerName dc2016 -PassThru | Format-List *

De commando's worden geaccepteerd, maar als ik een zone transfer uit probeer te voeren op 1 zone krijg ik een time-out (dus geen failed wanneer zone transfer uit zou staan -> getest).

Resultaat zonder zonetransfer
code:
1
2
3
4
5
6
$ dig @192.168.40.60 test.lab AXFR

; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> @192.168.40.60 test.lab AXFR
; (1 server found)
;; global options: +cmd
; Transfer failed.

Resultaat met de bovenstaande commando's uitgevoerd
code:
1
2
3
4
5
6
$ dig @192.168.40.60 test.lab AXFR

; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> @192.168.40.60 test.lab AXFR
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached


Reguliere commando's werken wel gewoon
code:
1
2
$ dig @192.168.40.60 www.test.lab +short
192.168.0.1

Dus de DNS service (in mijn lab) werkt wel
Ook al diverse andere formaten/opties e.d. geprobeerd, maar zonder succes.

Nu zal het ook mogelijk zijn (gok/hoop ik) dat je iteratief langs alle zones gaat en dan de settings aanpas dat zonetransfers mogelijk zijn vanaf 1 IP adres, maar daar stopt mijn powershell kennis/ervaring.

Is er iemand die me op weg kan helpen?

leica - zeiss - fuji - apple | PSN = Sh4m1n0

Beste antwoord (via BlaTieBla op 05-08-2022 15:50)


  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

BlaTieBla schreef op vrijdag 5 augustus 2022 @ 14:43:
Ik kan wel eens kijken of zoiets middels ldap mogelijk is, maar ik weet bijna zeker dat niet alles AD integrated is (de staat van de huidige dns is het resultaat van jaren lang knutselen van diverse beheerders / beheerpartijen).
Ah, dat maakt het wat lastiger.

https://techgenix.com/using-powershell-view-list-dns-zones/
Via deze krijg je alles zones. Dit zou je op kunnen slaan in een variabele en dan een for-each doen op alle zones en zo de zonetransfer aanzetten.

Ik zou eerst eens kijken of je het handmatig werkend kunt krijgen voor een tweetal zones (integrated en niet integrated) zodat je in ieder geval weet welke stappen je moet nemen om een zone succesvol over te krijgen. Die stappen bepalen namelijk ook wat je in je script moet aanpassen/doen.

Voor het loopen en dergelijke kunnen we wel wat verzinnen denk ik.
https://docs.microsoft.co...reach?view=powershell-7.2

Less alienation, more cooperation.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

Als de DNS zones binnen de AD gehost worden (AD Integrated), kan je dan niet op het LDAP niveau deze rechten aanpassen en ze gelijk voor alle "child objects" ook aanpassen? LDP.exe moet dat wel kunnen.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 22-09 11:02

BlaTieBla

Vloeken En Raak Schieten

Topicstarter
Ik kan wel eens kijken of zoiets middels ldap mogelijk is, maar ik weet bijna zeker dat niet alles AD integrated is (de staat van de huidige dns is het resultaat van jaren lang knutselen van diverse beheerders / beheerpartijen).

leica - zeiss - fuji - apple | PSN = Sh4m1n0


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

BlaTieBla schreef op vrijdag 5 augustus 2022 @ 14:43:
Ik kan wel eens kijken of zoiets middels ldap mogelijk is, maar ik weet bijna zeker dat niet alles AD integrated is (de staat van de huidige dns is het resultaat van jaren lang knutselen van diverse beheerders / beheerpartijen).
Ah, dat maakt het wat lastiger.

https://techgenix.com/using-powershell-view-list-dns-zones/
Via deze krijg je alles zones. Dit zou je op kunnen slaan in een variabele en dan een for-each doen op alle zones en zo de zonetransfer aanzetten.

Ik zou eerst eens kijken of je het handmatig werkend kunt krijgen voor een tweetal zones (integrated en niet integrated) zodat je in ieder geval weet welke stappen je moet nemen om een zone succesvol over te krijgen. Die stappen bepalen namelijk ook wat je in je script moet aanpassen/doen.

Voor het loopen en dergelijke kunnen we wel wat verzinnen denk ik.
https://docs.microsoft.co...reach?view=powershell-7.2

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 22-09 11:02

BlaTieBla

Vloeken En Raak Schieten

Topicstarter
Door het betere Google/Stackoverflow-werk met bovenstaande tips toch tot een werkende one-lines gekomen.
Nu eens kijken of ik er ook een 'formeel' powershell script van kan bakken.

PowerShell:
1
Get-DnsServerZone | ?{ $_.ZoneType -eq "Primary" -and $_.IsAutoCreated -eq $false } | %{Set-DnsServerPrimaryZone -Name $_.ZoneName -SecondaryServers ("192.168.40.11", "192.168.40.12") -SecureSecondaries TransferToSecureServers -PassThru }


De grootste hobbel lijkt nu genomen te zijn. Nu de volgende stap: hoe ik dit weer ongedaan krijg. Door de SecondaryServers array aan te passen veranderen de allowed IP's wel, maar leeg maken/houden werkt niet met dit commando.

leica - zeiss - fuji - apple | PSN = Sh4m1n0


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

BlaTieBla schreef op vrijdag 5 augustus 2022 @ 15:55:
Door het betere Google/Stackoverflow-werk met bovenstaande tips toch tot een werkende one-lines gekomen.
Nu eens kijken of ik er ook een 'formeel' powershell script van kan bakken.

PowerShell:
1
Get-DnsServerZone | ?{ $_.ZoneType -eq "Primary" -and $_.IsAutoCreated -eq $false } | %{Set-DnsServerPrimaryZone -Name $_.ZoneName -SecondaryServers ("192.168.40.11", "192.168.40.12") -SecureSecondaries TransferToSecureServers -PassThru }


De grootste hobbel lijkt nu genomen te zijn. Nu de volgende stap: hoe ik dit weer ongedaan krijg. Door de SecondaryServers array aan te passen veranderen de allowed IP's wel, maar leeg maken/houden werkt niet met dit commando.
Probeer het eens te vullen met een leeg array.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 22-09 11:02

BlaTieBla

Vloeken En Raak Schieten

Topicstarter
De volgende array waardes geprobeerd zonder succes:
code:
1
2
3
()
("")
""

Ook geprobeerd om de -SecureSecondaries e.d. weg te laten, maar nada :-(

leica - zeiss - fuji - apple | PSN = Sh4m1n0


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

BlaTieBla schreef op vrijdag 5 augustus 2022 @ 16:04:
De volgende array waardes geprobeerd zonder succes:
code:
1
2
3
()
("")
""

Ook geprobeerd om de -SecureSecondaries e.d. weg te laten, maar nada :-(
Wat je nog kan proberen is het "Zone" object te bekijken. Mischien heeft het een Property "SecondaryServers" in de vorm van een Array en misschien heeft deze een "Remove" methode.

Get-member op het object zou het moeten laten zien.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 22-09 11:02

BlaTieBla

Vloeken En Raak Schieten

Topicstarter
PowerShell:
1
Get-DnsServerZone -ZoneName "test.lab"

geeft hele beperkte info over de zone.
Verder kan ik niet echt powershell commando's vinden (https://docs.microsoft.co...view=windowsserver2016-ps) die suggereren dat ze detail info over een zone kunnen geven.

Maandag weer verder prutsen hiermee.

leica - zeiss - fuji - apple | PSN = Sh4m1n0

Pagina: 1