Het watermerk voor Windows-activering wordt nog steeds weergegeven
Van toepassing op: ✔️ Windows-VM's met Windows Server 2022 Datacenter Azure Edition
In dit document wordt beschreven hoe u de voortdurende aanwezigheid van een Windows-activeringswatermerk op virtuele Microsoft Azure-machines kunt oplossen.
Voorwaarden
Symptomen
Wanneer u een virtuele Azure-machine (VM) gebruikt waarop Windows Server 2022 Datacenter Azure Edition wordt uitgevoerd, ondervindt u de volgende symptomen:
U ziet een watermerk op het bureaublad dat het volgende bericht bevat:
Activeer Windows. Ga naar Instellingen om Windows te activeren.
Dit watermerk geeft aan dat de activeringsstatus van Windows niet echt is.
Wanneer u de app Instellingen opent en Systeemactivering> selecteert, geeft het veld Toepassingsstatus een activeringsfout aan.
Wanneer u een opdrachtpromptvenster met verhoogde bevoegdheid opent en het volgende slmgr.vbs-script voor volumeactivering uitvoert, ziet u in de uitvoer dat kms-activering (Key Management Services) is geslaagd, maar de eerste twee symptomen blijven:
cscript c:\windows\system32\slmgr.vbs /dlv
Wanneer u de VM opnieuw start of zich aanmeldt, wordt een pop-upvenster met het volgende bericht weergegeven:
Uw Windows Server 2022 Datacenter Azure Edition-VM is gedeactiveerd omdat u niet werkt in Azure of een ondersteunde Azure Stack-hypervisor of omdat u geen Azure-voordelen hebt ingeschakeld voor de ondersteunde Azure Stack. Als u Azure-voordelen wilt inschakelen, gaat u naar uw clusterinstellingen in Het Windows-beheercentrum > Azure-voordelen inschakelen.
Oorzaak 1: Verbindingsprobleem met Azure Instance Metadata Service
De Azure-VM kan geen verbinding maken met het AZURE Instance Metadata Service-eindpunt (IMDS), wat essentieel is voor het verkrijgen van het activeringstoken.
Bepalen of het gastbesturingssystemen van de VM kunnen communiceren met IMDS
Voer het volgende PowerShell-script uit, afhankelijk van uw versie van PowerShell om te controleren of de metagegevens worden ontvangen van IMDS.
PowerShell 6 en nieuwere versies
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 en eerdere versies
$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
Als u een geslaagd antwoord krijgt, ziet u de metagegevensgegevens van de VIRTUELE machine, zoals de volgende uitvoer:
compute
-------
@{azEnvironment=AzurePublicCloud; customData=; evictionPolicy=; isHostCompatibilityLayerVm=true; licenseType=; location=eastus; name=testWs2022; offer=WindowsServer; ...
Als dat niet het gevolg is, betekent dit dat de verbinding met de IMDS-wireserver ergens wordt geblokkeerd en dat de toegang tot de server moet worden toegestaan. Het IP-adres van de IMDS-server is 169.254.169.254
. Als u het verbindingsprobleem wilt oplossen, gaat u naar Oplossing 1: Webproxy's binnen de VM omzeilen.
Oorzaak 2: Probleem met betrekking tot certificaat
Tussenliggende certificaten die essentieel zijn voor het activeringsproces zijn verlopen.
Bepalen of er certificaten ontbreken
Voer het volgende PowerShell-script uit om te controleren op ontbrekende certificaten:
# 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
}
Als er certificaten ontbreken, ziet u een uitvoer die vergelijkbaar is met de volgende:
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
Ga naar Oplossing 2 om het certificaatprobleem op te lossen: Zorg ervoor dat firewalls en proxy's zijn geconfigureerd om certificaatdownloads toe te staan.
Oplossing 1: Webproxy's binnen de VM omzeilen
IMDS is een REST API die beschikbaar is op een bekend, niet-routeerbaar IP-adres (169.254.169.254
). Het IMDS-eindpunt is alleen toegankelijk vanuit de VM op de volgende URI: http://169.254.169.254/metadata/instance
Communicatie tussen VM en IMDS verlaat de host nooit. Laat uw HTTP-clients webproxy's binnen de VM omzeilen terwijl ze IMDS opvragen. Zorg er ook voor dat de clients het 169.254.169.254
IP-adres op dezelfde manier behandelen als het IP-adres 168.63.129.16 IP-adres. Voer de volgende stappen uit om te controleren of deze directe netwerkverbinding bestaat:
Notitie
168.63.129.16
is een virtueel openbaar IP-adres van Microsoft dat wordt gebruikt voor de communicatie met Azure-resources.
Als u de lokale routeringstabel op uw VIRTUELE machine wilt weergeven, voert u de opdracht routeafdruk uit :
route print
Als u de routeringsvermelding voor het IMDS-doel wilt vinden, gaat u naar de
Active Routes
sectie van deIPv4 Route Table
uitvoer en zoekt u de rij met het169.254.169.254
IP-adres in deNetwork Destination
kolom.Netwerkbestemming Netmasker Gateway Interface Metrische gegevens 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 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 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 ... ... ... ... ... In de uitvoer van de voorbeeldroutetabel bevindt de IMDS-doelvermelding zich in de laatste rij en is de bijbehorende netwerkinterface de waarde in de
Interface
kolom in die rij. (In dit voorbeeld is172.16.69.7
de netwerkinterface .)Als u de IP-configuratie van uw VIRTUELE machine wilt weergeven, voert u de ipconfig-opdracht uit:
ipconfig /all
Zoek in de uitvoer van de ipconfig-opdracht de IP-configuratie waarin het
IPv4 Address
veld overeenkomt met de netwerkinterfacewaarde van de IMDS-vermelding (172.16.69.7
):... 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 ...
In de voorbeeld-ipconfig-uitvoer is
Ethernet adapter Ethernet
de IP-configuratie die de netwerkinterfacewaarde van de IMDS-vermelding bevat.Kopieer in de IP-configuratie die u hebt gevonden het MAC-adres (Media Access Control) en het primaire privé-IP-adres dat door de VIRTUELE machine wordt gebruikt. Het MAC-adres wordt weergegeven in het
Physical Address
veld en het primaire privé-IP-adres wordt weergegeven in hetIPv4 Address
veld. In dit voorbeeld zijn00-0D-3A-E5-1C-C0
het MAC-adres en het primaire privé-IP-adres en172.16.69.7
respectievelijk het primaire privé-IP-adres.Controleer of de MAC- en primaire privé-IP-adressen die Door Azure worden gebruikt voor de VIRTUELE machine overeenkomen met het MAC-adres en het primaire privé-IP-adres dat het gastbesturingssystem van de VIRTUELE machine daadwerkelijk gebruikt (de adressen die u in de vorige stap hebt gevonden). Als u wilt bepalen wat Azure gebruikt als mac-adres, gebruikt u Azure CLI. Als u wilt bepalen wat Azure gebruikt als het primaire privé-IP-adres, bekijkt u de netwerkconfiguratie in Azure Portal.
Het MAC-adres zoeken (met behulp van Azure CLI in een PowerShell-script)
Voer het volgende PowerShell-script uit waarmee Azure CLI-opdrachten worden aangeroepen. Met dit script wordt de opdracht az vm nic list aangeroepen om de namen van de netwerkinterfaces op uw VIRTUELE machine te verzamelen. Vervolgens wordt de opdracht az vm nic show aangeroepen om de naam van elke netwerkinterface weer te geven, ongeacht of die netwerkinterface de primaire netwerkinterface (
True
ofFalse
) is en het MAC-adres van de netwerkinterface:Notitie
In de opdrachten vertegenwoordigt 'nic' de netwerkinterface, niet een netwerkinterfacekaart.
# 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
Zoek het primaire privé-IP-adres (met behulp van De Azure-portal):
Ga naar Azure Portal, en zoek en selecteer Virtuele machines.
Selecteer in de lijst met VM's de naam van uw VIRTUELE machine.
Ga op het tabblad Eigenschappen van de overzichtspagina van uw VM naar de kop Netwerken.
Kopieer in het veld Privé-IP-adres het weergegeven IPv4-adres.
Als de MAC-adressen of de primaire privé-IP-adressen niet identiek zijn tussen Azure en het gastbesturingssystem van de VM, gebruikt u verschillende routeopdrachten om de routeringstabel bij te werken, zodat de primaire netwerkinterface en het IP-adres zijn gericht.
Oplossing 2: Zorg ervoor dat firewalls en proxy's zijn geconfigureerd om certificaatdownloads toe te staan
Controleer of KB-5036909 is geïnstalleerd. Als dat niet het is, installeert u deze. U kunt deze downloaden uit de Microsoft Update-catalogus.
Als u de update hebt geïnstalleerd maar het probleem nog steeds ondervindt, controleert u of de firewalls en proxy's van uw systeem zijn geconfigureerd om het downloaden van certificaten toe te staan. Zie Certificaatdownloads en intrekkingslijsten voor meer informatie.
U kunt ook alle certificaten rechtstreeks downloaden en installeren vanuit de basis- en onderliggende certificeringsinstantieketens.
Notitie
Zorg ervoor dat u de opslaglocatie selecteert als lokale computer in de installatiewizard.
Open de opdrachtprompt als beheerder, navigeer naar c:\windows\system32 en voer fclip.exe uit.
Start de VIRTUELE machine opnieuw of meld u af en meld u vervolgens opnieuw aan. U ziet dat het watermerk op de startpagina niet meer wordt weergegeven en dat het veld Toepassingsstatus in het scherm Activering van instellingen>is geslaagd.
Meer informatie
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.