Back

Actualitza de Windows 10 a Windows 11

Descobreix els avantatges i el procés pas a pas per actualitzar de Windows 10 a Windows 11 per millorar la teva experiència informàtica.

Aquest guia troba els dispositius de Windows 10 que poden passar a Windows 11 i després comença l'actualització de manera automàtica. Es basa en les polítiques de Fleet i scripts de PowerShell.


 

Funció/Funcionalitat

Visió general

El procés té tres etapes:

  1. Llegeix l'estat de TPM 2.0 i Secure Boot de cada dispositiu i el desa al registre de Windows.
  2. Comprova els requisits de maquinari i programari per decidir quins dispositius són elegibles.
  3. Descarrega Windows 11 i l'instal·la silenciosament als dispositius que són elegibles.

 

Com fer servir

Pas 1. Registrar TPM i Secure Boot al registre

  1. Crea una política amb la consulta a continuació. Comprova si les dues claus del registre que contenen l'estat de TPM i Secure Boot ja existeixen.
SELECT 1 WHERE EXISTS (
      SELECT 1 FROM registry
      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\TPMVersion'
    )
    AND EXISTS (
      SELECT 1 FROM registry
      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\SecureBoot'
    );
  1. Adjunta l'script de PowerShell a continuació a aquesta política. Llegeix la versió de TPM i l'estat de Secure Boot i escriu ambdós valors al registre.
$TPM = Get-WmiObject -Namespace "Root\CIMv2\Security\MicrosoftTpm" -Class Win32_Tpm
$SecureBoot = Confirm-SecureBootUEFI

$TPMVersion = $TPM.SpecVersion
$SecureBootEnabled = if ($SecureBoot) { 1 } else { 0 }

# Escriu valors al registre (exemple)
New-Item -Path "HKLM:\Software\FleetDM" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\Software\FleetDM" -Name "TPMVersion" -Value $TPMVersion
Set-ItemProperty -Path "HKLM:\Software\FleetDM" -Name "SecureBoot" -Value $SecureBootEnabled

Quan s'hagi executat l'script, HKLM\Software\FleetDM\TPMVersion i HKLM\Software\FleetDM\SecureBoot existiran i contindran els valors actuals.

Pas 2. Comprovar quins dispositius de Windows 10 són elegibles

  1. Crea una segona política amb la consulta a continuació. Comprova la RAM, nuclis de CPU, arquitectura, TPM 2.0 i Secure Boot.
SELECT 1 FROM os_version as os JOIN system_info as si WHERE
    os.name NOT LIKE 'Microsoft Windows 10%'
    OR si.physical_memory < 4 * 1024 * 1024 * 1024
    OR si.cpu_physical_cores < 2
    OR si.cpu_type NOT LIKE '%x86_64%'
    OR NOT EXISTS (
      SELECT * FROM registry
      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\TPMVersion'
        AND data LIKE '2%'
    )
    OR NOT EXISTS (
      SELECT * FROM registry
      WHERE path = 'HKEY_LOCAL_MACHINE\Software\FleetDM\SecureBoot'
    AND data = '1'
    );
  1. Llegeix el resultat de la manera correcta: la consulta retorna 1 quan el dispositiu no és una màquina de Windows 10 elegible. Tracta-ho com una política de no conformitat. Els dispositius on no retorna 1 són els que pots actualitzar.

Pas 3. Començar l'actualització als dispositius elegibles

  1. Adjunta l'script a continuació als dispositius que han passat el pas 2.
  2. L'script descarrega l'ISO de Windows 11, la munta, copia els fitxers d'instal·lació al disc local i programa una configuració silenciosa que s'executa com a SYSTEM.
# Imports
Import-Module BitsTransfer

# Variables
$uri = "https://production-bucket-public-files.s3.eu-west-3.amazonaws.com/Win11_24H2_French_x64.iso" # locale francès — substitueix per l'ISO del llenguatge i regió
$destination = "C:\Win11.iso"
$log = "C:\logs\download_win11_iso.log"

# Crea la carpeta logs si no existeix
if (-not (Test-Path -Path "C:\logs")) {
    New-Item -Path "C:\logs" -ItemType Directory | Out-Null
}

# Comença la descàrrega
try {
    "`n[$(Get-Date)] Iniciant la descàrrega..." | Out-File -Append $log
    if (-not (Test-Path $destination)){
      Start-BitsTransfer -Source $uri -Destination $destination
    }
    "`n[$(Get-Date)] Descàrrega completada correctament." | Out-File -Append $log
} catch {
    "`n[$(Get-Date)] Error durant la descàrrega: $_" | Out-File -Append $log
}

# Variables addicionals
$isoPath = "C:\Win11.iso"
$setupFolder = "C:\Temp\Win11Files"
$taskName = "Win11SilentUpgrade"

# Pas 1 - Muntem l'ISO
Mount-DiskImage -ImagePath $isoPath -PassThru | Out-Null
Start-Sleep -Seconds 2
$vol = Get-Volume -DiskImage (Get-DiskImage -ImagePath $isoPath)
$driveLetter = $vol.DriveLetter

# Pas 2 - Copia el contingut de l'ISO localment
New-Item -ItemType Directory -Force -Path $setupFolder | Out-Null
Copy-Item "$driveLetter`:\*" -Destination $setupFolder -Recurse

# Desmuntem l'ISO
Dismount-DiskImage -ImagePath $isoPath

# Pas 3 - Crea i programa la tasca d'instal·lació
$action = New-ScheduledTaskAction -Execute "C:\Temp\Win11Files\setup.exe" -Argument "/auto upgrade /migratedrivers none /resizerecoverypartition enable /dynamicupdate disable /eula accept /quiet /noreboot /uninstall disable /compat ignorewarning /copylogs C:\logs\WinSetup.log"
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$task = New-ScheduledTask -Action $action -Principal $principal -Trigger (New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1))

Register-ScheduledTask -TaskName $taskName -InputObject $task -Force

# Pas 4 - Comença la tasca immediatament
Start-ScheduledTask -TaskName $taskName

Consells i Millors Pràctiques

  • Canvia l'ISO abans de executar qualsevol cosa. L'script apunta a un ISO francès. Substitueix l'URL per l'ISO de la teva llengua i regió.
  • Executa primer el pas 1 i dóna-li temps. El pas 2 depèn dels valors del registre escrits al pas 1. Un dispositiu sense ells sempre apareix com no elegible.
  • Comença amb un petit grup. La configuració s'executa silenciosament i sense un avís de reinici. Prova-ho en uns quants dispositius abans de tota la flota.
  • Mantén els logs. El registre de descàrrega va a C:\logs\download_win11_iso.log i el registre de configuració a C:\logs\WinSetup.log. Comprova'ls primer quan alguna cosa falla.
  • Planifica la descàrrega. Cada dispositiu descarrega un ISO complet de Windows 11, així que evita connexions lentes o de pagament per ús.

 

Resolució de Problemes i FAQ

Resolució de Problemes

  • Un dispositiu que esperaves que fos elegible apareix com no elegible. Comprova que l'script del pas 1 s'ha executat en ell i que ambdues claus del registre existeixen. Després comprova els requisits a la consulta del pas 2: Windows 10, almenys 4 GB de RAM, almenys 2 nuclis físics de CPU, un processador x86_64, versió de TPM 2 i Secure Boot activat.
  • L'actualització no va començar. Obre C:\logs\download_win11_iso.log per veure si l'ISO s'ha descarregat. Si ho ha fet, busca la tasca programada Win11SilentUpgrade al dispositiu.
  • La configuració va fallar a mitges. Llegeix C:\logs\WinSetup.log, on l'script indica a la configuració de Windows que copiï els seus registres.

 

FAQ

  1. Retorna la consulta del pas 2 els dispositius elegibles?
    No, al contrari. Retorna 1 per als dispositius que no són elegibles. Els dispositius elegibles són aquells on no retorna 1.
     
  2. Per què desar TPM i Secure Boot al registre?
    Perquè la política d'elegibilitat els pugui llegir amb una consulta de registre simple.
     
  3. Quin compte executa l'actualització?
    SYSTEM, a través d'una tasca programada que l'script crea i inicia immediatament.
     
  4. L'script reinicia el dispositiu?
    La comanda de configuració inclou /noreboot, així que l'script no força un reinici per si mateix.

Was this article helpful?

Give feedback about this article

Can’t find what you’re looking for?

Our customer care team is here for you.

Contact us

Knowledge Base Software powered by Helpjuice