Delen via


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.

Tussenliggende certificaten die essentieel zijn voor het activeringsproces zijn verlopen.

Zie Azure Instance Metadata Service-attested data TLS voor meer informatie: kritieke wijzigingen zijn hier.

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.

  1. Als u de lokale routeringstabel op uw VIRTUELE machine wilt weergeven, voert u de opdracht routeafdruk uit :

    route print
    
  2. Als u de routeringsvermelding voor het IMDS-doel wilt vinden, gaat u naar de Active Routes sectie van de IPv4 Route Table uitvoer en zoekt u de rij met het 169.254.169.254 IP-adres in de Network 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 is 172.16.69.7de netwerkinterface .)

  3. Als u de IP-configuratie van uw VIRTUELE machine wilt weergeven, voert u de ipconfig-opdracht uit:

    ipconfig /all
    
  4. 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 Ethernetde IP-configuratie die de netwerkinterfacewaarde van de IMDS-vermelding bevat.

  5. 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 het IPv4 Address veld. In dit voorbeeld zijn 00-0D-3A-E5-1C-C0 het MAC-adres en het primaire privé-IP-adres en 172.16.69.7respectievelijk het primaire privé-IP-adres.

  6. 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 of False) 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):

      1. Ga naar Azure Portal, en zoek en selecteer Virtuele machines.

      2. Selecteer in de lijst met VM's de naam van uw VIRTUELE machine.

      3. Ga op het tabblad Eigenschappen van de overzichtspagina van uw VM naar de kop Netwerken.

      4. Kopieer in het veld Privé-IP-adres het weergegeven IPv4-adres.

  7. 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

  1. Controleer of KB-5036909 is geïnstalleerd. Als dat niet het is, installeert u deze. U kunt deze downloaden uit de Microsoft Update-catalogus.

  2. 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.

  3. Open de opdrachtprompt als beheerder, navigeer naar c:\windows\system32 en voer fclip.exe uit.

  4. 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.