(Imagine)집에 하나의 문이 있다고 상상해보십시오 . 창문도 없고 안뜰 문도 없고 문이 하나뿐입니다. 그 문을 열 수 없다면 어떻게 될까요? 집과 그 안에 있는 모든 것이 당신에게 쓸모가 없습니다.
도메인 컨트롤러는 어떤 의미에서 문과 같습니다. 경비원이 있는 하나. 당신이 원하는 물건으로 들어갈 수 있는 관문입니다. Active Directory (AD)는 문을 지키는 경비원입니다. 자격 증명을 확인하고 문을 통과할 수 있는지 여부와 한 번 내부에 액세스할 수 있는 리소스를 결정합니다.
모든 종류의 네트워크를 운영 중이고 도메인 컨트롤러가 하나만 있다면 문이 하나인 집에 살고 있는 것입니다. 해당 도메인 컨트롤러에 문제가 발생하면 전체 서버 시스템이 무너집니다. 항상 둘 이상의 도메인 컨트롤러(DC)가 있어야 합니다.
그러나 두 도메인 컨트롤러가 동일한 정보를 가지고 있는지 어떻게 확인합니까? 한 DC에서 보안 관련 변경을 수행했다고 가정해 보겠습니다. 변경 사항이 다른 DC(DCs) 에 즉시 복제되도록 하려고 합니다. 일정에 따라 15분 이상 기다려야 하는 이유는 무엇입니까? Active Directory 에서 도메인 컨트롤러를 강제로 복제해야 합니다 .
이에 접근하는 3가지 방법이 있습니다. GUI (그래픽 사용자 인터페이스 ), CLI (명령줄 인터페이스 ) 또는 PowerShell .
GUI를 통한 도메인 컨트롤러 강제 복제(Force Replication Of Domain Controller Through GUI)
Windows 서버는 GUI(GUIs) 를 많이 사용하므로 초보 시스템 관리자(Systems Administrators) 에게 좋습니다. 배우기 쉽고 때로는 실제로 일어나는 일을 시각화하는 데 도움이 됩니다.
- DC 중 하나에 로그인하고 Active Directory 사이트 및 서비스(Active Directory Sites and Services) 를 엽니다 .
- 도메인 컨트롤러를 복제할 사이트로 이동합니다. 사이트 이름 옆에 있는 화살촉을 클릭하여 확장합니다. 서버(Servers) 를 확장합니다 . 복제하려는 DC를 확장합니다. NTDS 설정 을 (NTDS Settings)클릭(Click) 합니다 .
- 오른쪽 창에서 서버를 마우스 오른쪽 버튼으로 클릭하고 지금 복제(Replicate Now) 를 선택합니다 .
- DC(DCs) 의 수 에 따라 1초에서 몇 분 미만이 소요될 수 있습니다. 완료되면 "Active Directory Domain Services에서 연결을 복제했습니다."라는 알림이 표시됩니다. 확인 을 (OK)클릭(Click) 하여 완료합니다.
CLI 명령을 통해 도메인 컨트롤러 강제 복제(Force Replication of Domain Controllers Through CLI Command)
오래된 Windows CMD(Windows CMD) 에 익숙하다면 repadmin 명령이 적합합니다. 이것은 DC 복제를 강제하는 가장 빠른 일회성 방법입니다. 익숙하지 않다면 지금이 Windows CMD 에 대해 배울 수(learn about Windows CMD) 있는 좋은 기회 입니다.
- (Log)DC(DCs) 중 하나에 로그인 하고 명령 프롬프트(Command Prompt) 를 엽니다 .
- (Enter)다음 명령을 입력하고 Enter 키(Enter ) 를 누릅니다.
repadmin /syncall /AdeP
- 많은 정보가 화면을 위로 스크롤합니다. 마지막 줄에 "SyncAll이 오류 없이 종료되었습니다."가 표시되고 그 아래에 명령 프롬프트가 표시되면 DC(DCs) 가 성공적으로 복제된 것입니다.
PowerShell로 도메인 컨트롤러 복제 강제 실행(Force Domain Controller Replication With PowerShell)
일상 생활에서 PowerShell(PowerShell) 을 사용하지 않는다면 놓치고 있는 것입니다. PowerShell(learn PowerShell) 을 배우는 것은 정말 자신에게 빚이 있습니다 . 그것은 당신의 삶을 더 쉽게 만들어 줄 것이며, 당신이 주니어 시스템 관리자(Systems Administrator) 라면 당신의 경력을 한 단계 더 발전시키는 데 큰 도움이 될 것입니다.
이러한 단계는 일반 PowerShell CLI 에서 수행할 수 있지만 명령과 결과를 더 잘 표시하기 위해 PowerShell ISE 에서 수행했습니다 . 저장하거나 PowerShell(PowerShell) 명령줄 에서 호출할 수 있는 cmdlet으로 변환할 수 있는 스크립트를 작성하겠습니다 .
- DC 중 하나에 로그인하고 PowerShell 또는 PowerShell ISE 를 엽니다 .
- 스크립트를 작성하기 전에 force-DCReplication.ps1(force-DCReplication.ps1) 과 같은 설명이 포함된 이름으로 저장하여 더 쉽게 재사용할 수 있습니다. 다음 코드를 입력하고 실행하여 모든 DC(DCs) 의 이름을 가져오는 방법을 확인합니다 .
(Get-ADDomainController -Filter *).Name
DC(DCs) 의 이름을 반환하는 방법을 참조하십시오 . 이제 해당 결과를 다음 cmdlet으로 파이프할 수 있습니다. 파이프는 수직선 문자( |Enter 키 바로 위의 키보드에서 볼 수 있습니다 .
- 이전 명령의 끝에 다음 코드를 입력합니다.
| Foreach-Object { repadmin /syncall $_ (Get-ADDomain).DistinguishedName /AdeP }
명령은 아래 이미지와 같아야 합니다. 실행합니다. 위의 GUI(GUI) 를 통해 도메인 컨트롤러 복제 강제 실행(Force Domain Controller Replication) 섹션 에 있는 것과 같은 메시지를 반환해야 합니다 . " SyncAll 이 오류 없이 종료되었습니다."로 끝나는 경우. 그런 다음 작동했습니다.
repadmin 명령 도 사용하는 방법을 보셨습니까 ?
- 복제가 실제로 완료되었는지 확인하는 데 도움이 되는 다른 행을 추가해 보겠습니다. 다음 코드는 각 DC(DCs) 가 마지막으로 복제된 날짜와 시간을 반환합니다. DC(DCs) 가 마지막으로 복제된 시간이 궁금한 경우 이 명령을 단독으로 사용할 수 있습니다 . 코드를 입력(Enter) 하고 실행하십시오.
Get-ADReplicationPartnerMetadata -Target "$env:userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationSuccess
결과는 아래 이미지와 유사해야 합니다. 복제가 마지막으로 발생한 정확한 날짜와 시간이 맨 아래에 표시됩니다.
- 이 스크립트를 좀 더 다듬기 위해 출력을 좀 덜 장황하게 만들어 보겠습니다. 첫 번째 줄 끝에서 | Out-Null/AdeP 와 끝 브래킷 사이의 Out-Null 입니다. 이는 해당 cmdlet의 결과를 출력하지 않도록 지시합니다. 최종 결과는 다음 이미지와 같습니다.
복제 유지(Keep’em Replicated)
이제 AD에서 도메인 컨트롤러를 강제로 복제하는 3가지 방법을 알게 되었습니다. 또한 원할 때마다 PowerShell 명령줄 에서 호출할 수 있는 재사용 가능한 PowerShell 스크립트를 작성했습니다. (PowerShell)최신 DC 변경 사항이 있을 때마다 다음 예약된 복제를 기다리는 데 변명의 여지가 없습니다.
Force Replication Between Two Domain Controllers in Active Directory
Imagine having only one door to your home. No windows, no patio door, just one door. What happens if you can’t open thаt dоor? The house, and everything in it, is useless to you.
A domain controller is like a door, in a sense. One with a bouncer at it. It’s the gateway to get inside to the things you want. Active Directory (AD) is the bouncer at the door. It checks your credentials, determines if you are allowed to go through the door, and what resources you can access once inside.
If you’re running a network of any kind and only have one domain controller, you’re living in a house with one door. If something happens to that domain controller, your whole system of servers falls apart. Always have more than one domain controller (DC).
But how do you make sure that both domain controllers have the same information? Let’s say you made a security-related change on one DC. You want to make sure that change is replicated on your other DCs immediately. Why wait 15 minutes or more for it to happen by schedule? You need to force replication of the domain controllers in Active Directory.
There are 3 ways to approach this; through the graphical user interface (GUI), through the command-line interface (CLI), or via PowerShell.
Force Replication Of Domain Controller Through GUI
Windows servers make use of GUIs a lot, which is good for novice Systems Administrators. It’s easier to learn and sometimes helps you visualize what’s really happening.
- Log in to one of your DCs and open Active Directory Sites and Services.
- Navigate to the site for which you’d like to replicate the domain controllers. Expand it by clicking the arrowhead next to the site name. Expand the Servers. Expand the DC which you’d like to replicate. Click on NTDS Settings.
- In the right pane, right-click on the server and select Replicate Now.
- Depending on how many DCs there are, this could take less than a second to a few minutes. When it is complete, you’ll see the notification, “Active Directory Domain Services has replicated the connections.”. Click OK to finish.
Force Replication of Domain Controllers Through CLI Command
If you’re familiar with the good old Windows CMD, then the repadmin command is for you. This is the quickest one-off way to force DC duplication. If you’re not familiar then this is a good time to learn about Windows CMD.
- Log in to one of your DCs and open the Command Prompt.
- Enter the following command, and then press the Enter key.
repadmin /syncall /AdeP
- A litany of information will scroll up the screen. If you see that the last line reads, “SyncAll terminated with no errors.”, and then the command prompt underneath it, your DCs are successfully replicated.
Force Domain Controller Replication With PowerShell
If you’re not using PowerShell in your daily life, you’re missing out. You really owe it to yourself to learn PowerShell. It will make your life easier, and if you’re a Junior Systems Administrator it will massively help take your career to the next step.
These steps can be done in the ordinary PowerShell CLI, but we’ve done it in the PowerShell ISE to better show the commands and their results. We’re going to build a script that you can save or even turn into a cmdlet that you can call from the PowerShell command line.
- Log in to one of your DCs and open PowerShell or PowerShell ISE.
- Before writing any script, save this with a descriptive name like force-DCReplication.ps1 so you can reuse it easier. Enter the following code and run it to see how it will get the names of all your DCs.
(Get-ADDomainController -Filter *).Name
See how it returns the names of the DCs? Now you can pipe that result into the next cmdlet. A pipe is the vertical line character ( | ), that’s usually found on the keyboard just above the Enter key.
- At the end of the previous command, enter the following code:
| Foreach-Object { repadmin /syncall $_ (Get-ADDomain).DistinguishedName /AdeP }
The command should look like it does in the image below. Run it. It should return a message just like the one back in the Force Domain Controller Replication Through GUI section above. If it ends with, “SyncAll terminated with no errors.” then it worked.
Did you see how it also uses the repadmin command?
- Let’s add another line to help you make sure that the replication really did complete. The following code will return the date and time of when each of your DCs was last replicated. This command could be used on its own at another time if you’re just curious when your DCs last replicated. Enter the code and run it.
Get-ADReplicationPartnerMetadata -Target "$env:userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationSuccess
The result should resemble the image below. You’ll see at the bottom the exact date and time the replication last took place.
- To put some polish on this script, let’s make its output a little less verbose. Near the end of the first line, enter | Out-Null between the /AdeP and the end bracket. That tells it to not put out the results of that cmdlet. The end result will look like the following image.
Keep’em Replicated
Now you know 3 ways to force replication of domain controllers in AD. You’ve also put together a reusable PowerShell script that you can call from the PowerShell command-line whenever you want. There’s no excuse for your latest DC changes to sit and wait for the next scheduled replication, whenever that may be.