Windows 시스템 관리자를 괴롭히는 가장 일반적인 문제 중 하나는 신뢰할 수 있는 Active Directory 컴퓨터가 도메인에서 떨어져 보이는 것입니다. 유명한 “작업 스테이션이 주 도메인과의 신뢰 관계에 실패했습니다” 오류는 너무나 흔합니다.
이 가이드에서는 20년 이상의 Active Directory 관리 경험을 바탕으로 알게 된 모든 요령과 PowerShell을 사용하여 자동화하는 방법을 배우게 될 것입니다.
“작업 스테이션이 주 도메인과의 신뢰 관계에 실패했습니다” 오류 메시지
AD 도메인이 컴퓨터를 더 이상 신뢰하지 않는 경우, 로컬 컴퓨터가 가지고 있는 암호가 Active Directory에 저장된 암호와 일치하지 않기 때문일 확률이 높습니다.

두 암호는 AD가 컴퓨터를 신뢰하기 위해 동기화되어야 합니다. 일치하지 않는 경우, 널리 알려진 오류 메시지 “작업 스테이션이 주 도메인과의 신뢰 관계에 실패했습니다”을 받게 됩니다..
불행히도, 제 자신과 다른 시스템 관리자들이 찾은 100% 작동하는 단일한 해결책은 없습니다. 그래서 이 가이드를 작성한 것입니다.
이 가이드는 이 문제를 한 번에 고치고 PowerShell로 프로세스를 자동화하기 위한 단일 저장소가 되도록 의도되었습니다.
Active Directory 컴퓨터 계정 암호
새로운 컴퓨터가 Active Directory에 추가되면 컴퓨터 계정과 함께 암호가 생성됩니다. 기본적으로 해당 암호는 30일 동안 유효합니다. 30일이 지나면 자동으로 변경됩니다. 변경되는데 클라이언트 암호가 변경되지 않으면 “작업 스테이션과 주 도메인 간의 신뢰 관계가 실패했습니다”라는 오류 메시지가 표시됩니다.
기존 정책 확인
도메인 전체 정책을 확인하려면 그룹 정책 관리 콘솔 (GPMC)를 열어야 합니다. GPMC 내에서 기본 도메인 정책을 클릭한 다음 컴퓨터 구성 -> Windows 설정 -> 보안 설정 > 로컬 정책 > 보안 옵션으로 이동합니다.
보안 옵션에서 도메인 멤버: 최대 컴퓨터 계정 암호 사용 기간라는 정책을 찾아보세요.

AD 가입된 컴퓨터에서 regedit를 열고 HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters 레지스트리 키로 이동하여 아래에 표시된 MaximumPasswordAge 값을 찾습니다.

이때 로컬 컴퓨터에서 암호 변경을 전혀 하지 않도록 하려면 DisablePasswordChange 값을 1로 설정할 수 있습니다.
컴퓨터 계정이 변경되면 로컬 컴퓨터와 AD 컴퓨터 계정이 함께 암호를 변경해야 합니다. AD는 현재 암호와 이전 암호를 알고 있으며, 일시적으로 동기화되지 않을 경우를 대비합니다.
컴퓨터 계정 암호 변경 프로세스
일반적으로 Netlogon Windows 서비스를 사용하여 작업이 정상적으로 진행될 때, 컴퓨터는 자동으로 비밀번호를 변경합니다. 이는 컴퓨터가 재부팅되거나 컴퓨터 개체가 AD에 인증해야 할 때 발생합니다.
Netlogon Windows 서비스를 사용하여 로컬 컴퓨터가 비밀번호 변경 시퀀스를 시작합니다. 컴퓨터는 먼저 도메인 컨트롤러에서 비밀번호 변경을 시작합니다. 이 과정이 성공하면, HKLM\SECURITY\Policy\Secrets<hostname>.ACC 레지스트리 키 내에서 로컬 비밀번호를 변경하려고 시도합니다.
보통은 이 프로세스가 잘 작동합니다. 컴퓨터가 꺼지거나 30일 이상 오프라인인 경우에도 로컬 컴퓨터가 비밀번호 변경을 시작하기 때문입니다.
그러나 다음과 같은 문제가 발생하는 경우가 있습니다:
- 컴퓨터가 AD 컴퓨터 계정을 변경하지만 로컬 비밀번호를 변경하지 못하는 경우
- 컴퓨터가 Sysprep을 실행하지 않고 다시 이미지를 적용하는 경우
- 운영체제가 다시 설치되고 이전에 활성화된 AD 컴퓨터 계정으로 인증을 시도하는 경우
- …그 외의 경우
위의 어떤 경우라도 “작업 스테이션과 주 도메인 간의 신뢰 관계가 실패했습니다”라는 오류 메시지가 표시됩니다.
문제 확인
문제가 있는 것을 확인한 후, 이를 복제하거나 적어도 어떤 컴퓨터에 문제가 있는지 확인하는 방법은 무엇인가요? 각 컴퓨터에 대해 대화식으로 로그인해볼 수도 있지만 이는 확장 가능하지 않으며, 제 자리에서 일어나고 싶지 않습니다!
도메인 내에서이 문제를 완전히 해결하기 위해 로컬 및 원격으로 실행할 수있는 스크립트를 작성해 봅시다.
먼저, 도메인 인증이 작동하지 않는 것으로 가정하므로 관리자 그룹에 로컬 사용자 계정을 알아야합니다. 로컬 관리자 비밀번호를 알고 계시기를 바랍니다!
nltest (명령 줄 도구)
nltest는 컴퓨터의 신뢰 관계를 테스트하는 기존의 명령 줄 도구입니다. 이 도구는 RSAT을 설치할 때 설치되거나 도메인 컨트롤러에서 직접 사용할 수 있습니다.
컴퓨터에서 로그인 한 상태에서 신뢰 관계를 확인할 수 있습니다. 다음을 실행하여:
경고 :이 방법은 권장되지 않습니다. nltest는 실행된 사용자 컨텍스트에서만 작동합니다. 컴퓨터의 신뢰 관계가 깨진 경우 로컬 사용자로 로그인하면 로컬 사용자의 자격 증명을 사용하여 도메인에 연결을 시도합니다. 이로 인해 액세스가 거부되었습니다.
netdom (명령 줄 도구)
netdom은 신뢰 관계를 확인하는 데 사용할 수 있는 다른 명령 줄 도구입니다. 이 도구는 RSAT을 설치하면 자동으로 설치되거나 도메인 컨트롤러에서 직접 사용할 수 있습니다.
netdom verify
를 사용하여 신뢰 관계를 확인할 수 있습니다. 이를 위해 다음을 제공해야 합니다:
- 확인할 컴퓨터 이름
- 도메인의 완전한 도메인 이름(FQDN)
- 요청을 인증할 사용자 이름
- 사용자 계정의 암호
아래는 예시입니다:
PasswordO
매개변수에 *
값을 제공하면 netdom이 암호를 요청합니다.
Test-ComputerSecureChannel (PowerShell)
“작업 스테이션과 주 도메인 간의 신뢰 관계가 실패했습니다” 문제를 해결하는 가장 좋은 방법 중 하나는 Test-ComputerSecureChannel
cmdlet을 사용하는 것입니다. 이 PowerShell cmdlet은 Windows 10에 포함되어 있으며 사용하기 쉽습니다.
Test-ComputerSecureChannel
cmdlet은 Windows 10 컴퓨터에서 로컬로 작동합니다. 컴퓨터에 대화식으로 로그인한 후 PowerShell 콘솔을 열고 매개변수 없이 Test-ComputerSecureChannel
을 실행하십시오. 신뢰가 유효한지 여부에 따라 True 또는 False를 반환합니다.
또한 Server
매개변수를 사용하여 특정 도메인 컨트롤러를 지정하여 암호가 동기화되었는지 확인할 수 있습니다.
이 cmdlet은 사용하기 간단하며 Repair
옵션이 있지만, 이를 고치는 섹션에서 설명하겠습니다.
검사하려는 컴퓨터의 로컬 관리자 암호를 알고 있고, 해당 컴퓨터에서 PowerShell Remoting이 활성화되어 있는 경우 Invoke-Command
cmdlet을 사용할 수도 있습니다. Invoke-Command
cmdlet을 사용하여 한 번에 하나 이상의 컴퓨터에서 Test-ComputerSecureChannel
을 원격으로 실행할 수 있습니다.
대량으로 신뢰 관계 확인하기
이제 신뢰 관계를 원격으로 확인하는 방법을 알았으므로, AD 컴퓨터 모두를 확인하는 데 사용할 수 있는 코드 스니펫을 제공합니다! 이 스크립트에서는 먼저 컴퓨터가 온라인인지 확인합니다. 그렇지 않으면 오프라인을 반환합니다. 그렇지 않다면, 각 컴퓨터에서 Test-ComputerSecureChannel
을 실행하고 True 또는 False를 반환합니다.
문제를 알고 이해하는 것은 첫 번째 단계입니다. 그러나 어떻게 해결할 수 있을까요? 컴퓨터 계정을 로컬 컴퓨터에 저장된 컴퓨터 계정과 AD에 저장된 컴퓨터 계정과 동일하게 만들어야 함을 알게 되었습니다.
“이 워크스테이션과 주 도메인 간의 신뢰 관계가 실패했습니다” 문제에 대해 다양한 “해결책”이 있습니다. 이러한 해결책은 GUI, PowerShell 또는 고전적인 명령행 도구를 통해 수행할 수 있습니다.
- AD에서 컴퓨터 계정 암호 재설정
- 로컬 컴퓨터 계정 암호 재설정
- Windows 컴퓨터를 탈퇴하고 다시 가입
- 컴퓨터 계정을 완전히 제거하고 Windows 컴퓨터에 다시 가입
다양한 선택지가 있습니다! 이 안내서에서는 PowerShell과 명령행 도구를 사용하여 이 문제를 해결하는 데 초점을 맞출 것입니다(완전성을 위해). PowerShell을 사용하고 있지 않다면 사용해보세요!
문제 해결: 컴퓨터 암호 재설정
Netdom(명령행 도구)
A trust can be repaired and the “the trust relationship between this workstation and the primary domain failed” error message can be eliminated by using the old-school netdom command-line tool. If you’re logged into the computer locally as an administrative user, you can run netdom resetpwd to initiate the password reset sequence as shown below.
이 예제에서:
- DC는 도메인 컨트롤러의 이름입니다
- abertram은 컴퓨터 계정 재설정 권한이 있는 Active Directory 사용자 계정의 이름입니다
- *는 암호를 입력할 수 있도록 하는 사용자 계정 암호의 자리 표시자입니다.
Reset-ComputerMachinePassword(PowerShell)
신뢰 관계를 복구하는 가장 좋은 방법 중 하나는 Reset-ComputerMachinePassword
cmdlet을 사용하는 것입니다. 이 cmdlet은 로컬 컴퓨터에서 실행되며 암호 재설정 시퀀스를 시작합니다. 구문은 매우 간단합니다.
특정 DC를 재설정하려면 Server
매개변수와 옵션 자격 증명을 사용하여 지정할 수 있습니다(로컬 사용자로 기본 설정됨).
다음 예제는 AD 사용자 이름과 비밀번호를 요청하고 로컬 컴퓨터와 DC 도메인 컨트롤러에서 비밀번호를 재설정하려고 시도합니다.
컴퓨터에 PowerShell Remoting이 가능한 경우, Invoke-Command
을 사용하여 원격으로 실행할 수도 있습니다. 아래에서는 컴퓨터의 로컬 관리자 계정의 사용자 이름과 비밀번호를 얻습니다. 또한 이 컴퓨터의 AD 계정 비밀번호를 재설정할 권한이 있는 자격 증명을 얻습니다. 그런 다음 $domainCredential
을 $using
구문을 사용하여 원격 세션에 전달합니다.
컴퓨터 계정이 Active Directory에서 제거되었더라도 작동하는 것에 유의하십시오. 동일한 이름으로 컴퓨터 계정을 생성하고
Reset-ComputerMachinePassword
를 사용하면 비밀번호가 동기화됩니다.
대량으로 로컬 컴퓨터 계정 비밀번호 재설정하기
“이 작업 스테이션과 주 도메인 간의 신뢰 관계가 실패했습니다” 오류를 한 번에 여러 컴퓨터에서 해결하고 싶으신가요? 문제 없습니다. 편리한 foreach 루프를 사용하여 Reset-ComputerMachinePassword
를 대량으로 실행할 수도 있습니다.
Test-ComputerSecureChannel -Repair (PowerShell)
비밀번호 변경 프로세스를 시작하는 다른 방법은 Test-ComputerSecureChannel
을 실행하는 것이지만, 이번에는 Repair
옵션을 사용하는 것입니다. 내가 알기로는, 이 프로세스는 Reset-ComputerMachinePassword
를 사용하는 것과 동일합니다. 컴퓨터 콘솔에서 Repair
매개변수와 Credential
매개변수를 사용하세요.
여기에서는 항상 Credential
매개변수를 사용하는 것이 중요합니다. 그렇지 않으면, nltest 유틸리티와 비슷하게 로컬 계정을 사용하려고 시도하고 작동하지 않을 것입니다.
대량으로 신뢰 관계 복구
우리가 계속 사용하고 있는 편리한 foreach 루프에 이 명령을 넣으면 됩니다. 그러면 성공할 것입니다!
문제 해결: 도메인 다시 가입
컴퓨터 계정 비밀번호 재설정이 작동하지 않는 경우, 항상 극단적인 방법이 있습니다. 컴퓨터를 Active Directory 도메인에 다시 가입시킬 수 있습니다. 항상 필요하지는 않지만, 때로는 이 접근 방식을 사용해야 할 때가 있습니다.
일부 보고에 따르면, 분리(disjoin)가 필요하지 않을 수도 있습니다. 새로운 가입을 강제로 시도하는 것만으로도 해결할 수 있을 수 있습니다. 상황에 따라 다릅니다.
다음을 할 수 있습니다:
- 로컬 관리 계정을 사용하여 컴퓨터에 로그인
- 시스템 속성으로 이동
- 변경을 클릭
- 작업 그룹으로 설정
- 재부팅
- 다시 도메인으로 설정
할 수 있다고 언급한 것에 주목하세요. 이렇게 하지 마세요. PowerShell로 자동화할 수 있는 시간 낭비입니다.
PowerShell을 사용하여 도메인에서 탈퇴하고 PowerShell을 사용하여 도메인에 가입하는 두 가지 방법을 찾았습니다.
CIM 사용
PowerShell을 사용하여 도메인에 가입하고 탈퇴하는 방법은 Win32_ComputerSystem CIM 클래스를 사용하는 것입니다. 이 클래스에는 컴퓨터를 도메인에 가입하거나 탈퇴하는 두 개의 메서드인 UnJoinDomainOrWorkgroup()
와 JoinDomainOrWorkGroup()
이 있습니다.
CIM이므로 이것은 로컬에서와 마찬가지로 원격으로 실행할 수 있습니다. 책상에서 편안하게 원격으로 실행하고자 한다고 가정하므로, 다음 코드 스니펫을 사용하면 됩니다.
“이 작업 스테이션과 주 도메인 간의 신뢰 관계에 오류가 발생했습니다” 오류를 해결하세요!
위의 FUnjoinOptions
매개변수에 주목하세요. 여기서는 4를 지정했습니다. 이는 컴퓨터를 수동으로 탈퇴할 때의 기본 동작을 수행합니다. 이 옵션은 Active Directory에서 컴퓨터 계정을 비활성화합니다(계정을 찾을 수 있다면). 이 동작을 원하지 않는 경우 여기에서 옵션 0을 사용할 수 있습니다.
컴퓨터가 탈퇴되면 JoinDomainOrWorkGroup()
메서드를 사용하여 도메인에 다시 가입할 수 있습니다.
위에있는 FJoinOptions
매개 변수를주의하십시오. 여기서는 3을 지정하기로 선택했습니다. 이는 컴퓨터를 수동으로 조인 할 때 기본 동작을 수행합니다. 이 옵션은 AD 컴퓨터 계정을 생성합니다. JoinDomainOrWorkgroup 문서를 통해 특정 OU에 추가하는 몇 가지 다른 옵션을 찾을 수 있습니다.
TIP:
ComputerName
매개 변수의Get-CimInstance
에서 여러 컴퓨터를 지정하여 한 번에 여러 컴퓨터를 unjoin 및 다시 join 할 수도 있습니다.
Remove-Computer 및 Add-Computer Cmdlet 사용
PowerShell을 사용하여 컴퓨터를 도메인에서 unjoin 및 join하는 데 내장 된 PowerShell cmdlet을 사용할 수도 있습니다. Remove-Computer
및 Add-Computer
cmdlet을 사용할 수 있습니다.
PowerShell을 사용하여 컴퓨터의 연결을 해제하려면 컴퓨터 콘솔에 로그인한 다음 Remove-Computer
cmdlet을 사용하십시오. 컴퓨터의 연결을 해제할 권한을 가진 도메인 자격 증명을 제공하십시오. 또한 Restart
매개 변수를 지정하여 연결 해제 후 다시 시작을 강제로 수행하고, Force
를 지정하여 확인 메시지를 표시하지 않도록 할 수도 있습니다.
컴퓨터가 다시 부팅된 후에는 Add-Computer
cmdlet을 사용하여 PowerShell을 사용하여 컴퓨터를 도메인에 가입할 수 있습니다. ComputerName
매개 변수를 제공하여 원격으로 Add-Computer
cmdlet을 사용할 수도 있습니다. 연결을 수행하기 위해 로컬 사용자 자격 증명을 사용하고 도메인 자격 증명을 사용하여 도메인에 인증합니다.
다시 부팅되면 “이 워크스테이션과 주 도메인 간의 신뢰 관계가 실패했습니다”라는 오류 메시지가 더 이상 표시되지 않기를 바랍니다.
자동 도메인 연결 해제 및 연결
이 프로세스를 너무 많이 수행해야 했기 때문에 모든 작업을 수행하는 PowerShell 스크립트를 작성했습니다. 컴퓨터의 이름을 제공하면 다음 작업을 수행합니다:
- 컴퓨터의 연결 해제
- 다시 부팅하고 다시 시작할 때까지 대기
- 컴퓨터에 가입
- 다시 부팅하고 다시 시작할 때까지 대기
이 스크립트를 GitHub에서 사용해 볼 수 있습니다.
요약
이제 문제에 대한 완전한 이해와 악명 높은 “작업 스테이션과 주 기본 도메인 간의 신뢰 관계가 실패했습니다” 오류 메시지에 대한 여러 가지 해결책을 가져야합니다. 이 가이드가 몇 가지 통찰력을 제공하고 컴퓨터가 도메인에서 떨어지는 문제에 대한 여러 가지 해결책을 스스로 생각할 수 있도록 도움이 되기를 바랍니다!
추가 읽기
관련된 다른 게시물을 확인해보세요!