Windows 정품 인증 워터마크가 계속 표시됨
적용 대상: ✔️ Windows Server 2022 Datacenter Azure Edition을 실행하는 Windows VM
이 문서에서는 Microsoft Azure 가상 머신에서 Windows 정품 인증 워터마크가 지속적으로 있는지 확인하는 방법을 설명합니다.
필수 조건
증상
Windows Server 2022 Datacenter Azure Edition을 실행하는 Azure VM(가상 머신)을 사용하는 경우 다음과 같은 증상이 발생합니다.
바탕 화면에 다음 메시지가 포함된 워터마크가 표시됩니다.
Windows를 활성화합니다. 설정으로 이동하여 Windows를 정품 인증합니다.
이 워터마크는 Windows 정품 인증 상태가 정품이 아님을 나타냅니다.
설정 앱을 열고 시스템>활성화를 선택하면 애플리케이션 상태 필드가 활성화 실패를 나타냅니다.
관리자 권한 명령 프롬프트 창을 열고 다음 slmgr.vbs 볼륨 정품 인증 스크립트를 실행하면 출력에 KMS(키 관리 서비스s) 정품 인증이 성공했지만 처음 두 가지 증상은 남아 있습니다.
cscript c:\windows\system32\slmgr.vbs /dlv
VM을 다시 시작하거나 로그인하면 다음 메시지가 포함된 팝업 창이 표시됩니다.
Azure 또는 지원되는 Azure Stack 하이퍼바이저에서 실행되지 않거나 지원되는 Azure Stack에서 Azure 혜택을 사용하도록 설정하지 않았기 때문에 Windows Server 2022 Datacenter Azure Edition VM이 비활성화되었습니다. Azure 혜택을 사용하도록 설정하려면 Windows Admin Center > Enable Azure 혜택의 클러스터 설정으로 이동합니다.
원인 1: Azure Instance 메타데이터 서비스 연결 문제
Azure VM은 활성화 토큰을 가져오는 데 필수적인 IMDS(Azure Instance Metadata Service) 엔드포인트와의 연결을 설정할 수 없습니다.
VM 게스트 OS가 IMDS와 성공적으로 통신할 수 있는지 확인하는 방법
PowerShell 버전에 따라 다음 PowerShell 스크립트를 실행하여 메타데이터가 IMDS에서 수신되었는지 확인합니다.
PowerShell 6 이상 버전
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri http://169.254.169.254/metadata/attested/document?api-version=2020-09-01 | Format-List * | Out-File "IMDSResponse1.txt"
PowerShell 5 및 이전 버전
$Proxy=New-object System.Net.WebProxy $WebSession=new-object Microsoft.PowerShell.Commands.WebRequestSession $WebSession.Proxy=$Proxy Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri "http://169.254.169.254/metadata/instance?api-version=2021-02-01" -WebSession $WebSession
성공적인 응답을 받으면 VM의 메타데이터 정보(예: 다음 출력)가 표시됩니다.
compute
-------
@{azEnvironment=AzurePublicCloud; customData=; evictionPolicy=; isHostCompatibilityLayerVm=true; licenseType=; location=eastus; name=testWs2022; offer=WindowsServer; ...
그렇지 않은 경우 IMDS 와이어 서버에 대한 연결이 어딘가에서 차단되고 액세스가 허용되어야 합니다. IMDS 서버의 IP는 169.254.169.254
. 연결 문제를 해결하려면 솔루션 1: VM 내에서 웹 프록시 무시로 이동합니다.
원인 2: 인증서 관련 문제
활성화 프로세스에 중요한 중간 인증서가 만료되었습니다.
자세한 내용은 Azure Instance Metadata Service-Attested 데이터 TLS를 참조 하세요. 중요한 변경 내용은 다음과 같습니다.
인증서가 누락되었는지 확인하는 방법
다음 PowerShell 스크립트를 실행하여 누락된 인증서를 확인합니다.
# Get the signature
# Powershell 5.1 does not include -NoProxy
$attestedDoc = Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -Uri http://169.254.169.254/metadata/attested/document?api-version=2018-10-01
#$attestedDoc = Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri http://169.254.169.254/metadata/attested/document?api-version=2018-10-01
# Decode the signature
$signature = [System.Convert]::FromBase64String($attestedDoc.signature)
# Get certificate chain
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]($signature)
$chain = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Chain
if (-not $chain.Build($cert)) {
# Print the Subject of the issuer
Write-Host $cert.Subject
Write-Host $cert.Thumbprint
Write-Host "------------------------"
Write-Host $cert.Issuer
Write-Host "------------------------"
Write-Host "Certificate not found: '$($cert.Issuer)'" -ForegroundColor Red
Write-Host "Please refer to the following link to download missing certificates:" -ForegroundColor Yellow
Write-Host "https://learn.microsoft.com/en-us/azure/security/fundamentals/azure-ca-details?tabs=certificate-authority-chains" -ForegroundColor Yellow
} else {
# Print the Subject of each certificate in the chain
foreach($element in $chain.ChainElements) {
Write-Host $element.Certificate.Subject
Write-Host $element.Certificate.Thumbprint
Write-Host "------------------------"
}
# Get the content of the signed document
Add-Type -AssemblyName System.Security
$signedCms = New-Object -TypeName System.Security.Cryptography.Pkcs.SignedCms
$signedCms.Decode($signature);
$content = [System.Text.Encoding]::UTF8.GetString($signedCms.ContentInfo.Content)
Write-Host "Attested data: " $content
$json = $content | ConvertFrom-Json
}
인증서가 누락된 경우 다음과 유사한 출력이 표시됩니다.
CN=metadata.azure.com, O=Microsoft Corporation, L=Redmond, S=WA, C=US
3ACCC393D3220E40F09A69AC3251F6F391172C32
------------------------
CN=Microsoft Azure RSA TLS Issuing CA 04, O=Microsoft Corporation, C=US
------------------------
Certificate not found: 'CN=Microsoft Azure RSA TLS Issuing CA 04, O=Microsoft Corporation, C=US'
Please refer to the following link to download missing certificates:
https://learn.microsoft.com/en-us/azure/security/fundamentals/azure-ca-details?tabs=certificate-authority-chains
인증서 문제를 해결하려면 솔루션 2: 방화벽 및 프록시가 인증서 다운로드를 허용하도록 구성되어 있는지 확인합니다.
솔루션 1: VM 내에서 웹 프록시 무시
IMDS 는 잘 알려진 라우팅할 수 없는 IP 주소(169.254.169.254
)에서 사용할 수 있는 REST API입니다. IMDS 엔드포인트는 다음 URI http://169.254.169.254/metadata/instance
에서만 VM 내에서 액세스할 수 있습니다. VM과 IMDS 간의 통신은 호스트를 떠나지 않습니다. HTTP 클라이언트가 IMDS를 쿼리하는 동안 VM 내에서 웹 프록시를 우회하도록 합니다. 또한 클라이언트가 168.63.129.16 IP 주소를 처리하는 것과 동일한 방식으로 IP 주소를 처리 169.254.169.254
해야 합니다. 이 직접 네트워크 연결이 있는지 확인하려면 다음 단계를 수행합니다.
참고 항목
168.63.129.16
는 Azure 리소스와 통신하는 데 사용되는 Microsoft 소유의 가상 공용 IP 주소입니다.
VM에서 로컬 라우팅 테이블을 보려면 경로 인쇄 명령을 실행합니다.
route print
IMDS 대상에 대한 라우팅 항목을 찾으려면 출력 섹션으로
Active Routes
이동한 다음 열에 IP 주소가 포함된 행을Network Destination
찾습니다169.254.169.254
.IPv4 Route Table
네트워크 대상 네트워크 마스크 게이트웨이 인터페이스 메트릭 0.0.0.0 0.0.0.0 172.16.69.1 172.16.69.7 10 127.0.0.0 255.0.0.0 온-링크 127.0.0.1 331 127.0.0.1 255.255.255.255 온-링크 127.0.0.1 331 127.255.255.255 255.255.255.255 온-링크 127.0.0.1 331 168.63.129.16 255.255.255.255 172.16.69.1 172.16.69.7 11 169.254.169.254 255.255.255.255 172.16.69.1 172.16.69.7 11 ... ... ... ... ... 샘플 경로 테이블 출력에서 IMDS 대상 항목은 마지막 행에 있으며 해당 네트워크 인터페이스는 해당 행 내의 열에
Interface
있는 값입니다. (이 예제에서는 네트워크 인터페이스가172.16.69.7
.)VM의 IP 구성을 보려면 ipconfig 명령을 실행합니다.
ipconfig /all
ipconfig 명령 출력에서 필드가 IMDS 항목
172.16.69.7
()의 네트워크 인터페이스 값과 일치하는 IP 구성IPv4 Address
을 찾습니다.... Ethernet adapter Ethernet: Connection-specific DNS Suffix . : xic3mnxjiefupcwr1mcs1rjiqa.cx.internal.cloudapp.net Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter Physical Address. . . . . . . . . : 00-0D-3A-E5-1C-C0 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::3166:ce5a:2bd5:a6d1%3(Preferred) IPv4 Address. . . . . . . . . . . : 172.16.69.7(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 ...
샘플 ipconfig 출력에서 IMDS 항목의 네트워크 인터페이스 값을 포함하는 IP 구성은 다음과 같습니다
Ethernet adapter Ethernet
.사용자가 찾은 IP 구성에서 MAC(미디어 액세스 제어) 주소 및 VM에서 사용하는 기본 개인 IP 주소를 복사합니다. MAC 주소가 필드에 표시
Physical Address
되고 기본 개인 IP 주소가 필드에 표시됩니다IPv4 Address
. 이 예제에서는 각각 MAC 주소와 기본 개인 IP 주소가00-0D-3A-E5-1C-C0
172.16.69.7
있습니다.Azure에서 VM에 사용하는 MAC 및 기본 개인 IP 주소가 MAC 주소 및 VM의 게스트 OS가 실제로 사용하는 기본 개인 IP 주소(이전 단계에서 찾은 주소)와 일치하는지 확인합니다. Azure에서 MAC 주소로 사용하는 항목을 확인하려면 Azure CLI를 사용합니다. Azure에서 기본 개인 IP 주소로 사용하는 항목을 확인하려면 Azure Portal에서 네트워크 구성을 검사합니다.
MAC 주소 찾기(PowerShell 스크립트에서 Azure CLI 사용)
Azure CLI 명령을 호출하는 다음 PowerShell 스크립트를 실행합니다. 이 스크립트는 az vm nic list 명령을 호출하여 VM에서 네트워크 인터페이스의 이름을 수집합니다. 그런 다음 az vm nic show 명령을 호출하여 네트워크 인터페이스가 기본 네트워크 인터페이스인지 또는 네트워크 인터페이스의 MAC 주소인지 여부에 관계없이 각 네트워크 인터페이스
True
False
의 이름을 표시합니다.참고 항목
명령에서 "nic"는 네트워크 인터페이스 카드가 아닌 네트워크 인터페이스를 나타냅니다.
# Placeholder variable definitions $ResourceGroup = "<resource-group-name>" $VmName = "<virtual-machine-name>" # Code $NicNames = az vm nic list --resource-group $ResourceGroup --vm-name $VmName | ConvertFrom-Json | Foreach-Object { $_.id.Split('/')[-1] } foreach($NicName in $NicNames) { az vm nic show --resource-group $ResourceGroup --vm-name $VmName --nic $NicName | ConvertFrom-Json | Format-Table -Property name, primary, macAddress }
name primary macAddress ---- ------- ---------- wintest767 True 00-0D-3A-E5-1C-C0
Azure Portal을 사용하여 기본 개인 IP 주소를 찾습니다.
Azure Portal에서 가상 머신을 검색하여 선택합니다.
VM 목록에서 VM의 이름을 선택합니다.
VM 개요 페이지의 속성 탭에서 네트워킹 제목을 찾습니다.
개인 IP 주소 필드에서 표시된 IPv4 주소를 복사합니다.
MAC 주소 또는 기본 개인 IP 주소가 Azure와 VM 게스트 OS 간에 동일하지 않은 경우 다양한 경로 명령을 사용하여 라우팅 테이블을 업데이트하여 기본 네트워크 인터페이스 및 IP 주소가 대상으로 지정되도록 합니다.
솔루션 2: 인증서 다운로드를 허용하도록 방화벽 및 프록시가 구성되었는지 확인
KB 5036909 설치되어 있는지 확인합니다. 그렇지 않은 경우 설치합니다. Microsoft 업데이트 카탈로그에서 가져올 수 있습니다.
업데이트를 설치했지만 여전히 문제가 발생하는 경우 시스템의 방화벽 및 프록시가 인증서 다운로드를 허용하도록 구성되어 있는지 확인합니다. 자세한 내용은 인증서 다운로드 및 해지 목록을 참조 하세요.
또는 루트 및 하위 인증 기관 체인에서 직접 모든 인증서를 다운로드하고 설치할 수 있습니다.
참고 항목
설치 마법사에서 저장소 위치를 로컬 컴퓨터로 선택해야 합니다.
관리자 권한으로 명령 프롬프트를 열고 c:\windows\system32로 이동한 후 fclip.exe 실행합니다.
VM을 다시 시작하거나 로그아웃한 다음 다시 로그인합니다. 홈 페이지의 워터마크가 더 이상 표시되지 않고 설정>활성화 화면의 애플리케이션 상태 필드가 성공을 보고하는 것을 볼 수 있습니다.
자세한 정보
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.