Partager via


Guide de migration de OneNote pour Windows 10

Importante

OneNote pour Windows 10 prendra fin en octobre 2025. Les clients d’entreprise doivent passer de OneNote pour Windows 10 à OneNote sur Windows, qui est disponible à partir du Microsoft Store et avec un abonnement Microsoft 365. OneNote sur Windows offre de nouvelles fonctionnalités et mises à jour et vous permet de personnaliser les paramètres utilisateur via stratégie de groupe.

Cet article fournit des conseils pour la migration de votre organization de OneNote pour Windows 10 vers OneNote pour Windows. Il comprend des instructions pour identifier les utilisateurs, personnaliser les scripts de migration et garantir l’intégrité des données tout au long du processus. Vous trouverez les étapes de résolution des problèmes et les meilleures pratiques pour réduire les interruptions et protéger les données utilisateur pendant la migration.

Identification des utilisateurs sur OneNote pour Windows 10 :

Pour identifier les utilisateurs ou les appareils de votre organization à l’aide de OneNote pour Windows 10 via Microsoft Intune, procédez comme suit pour exécuter un rapport :

  • Dans Intune, accédez à : Toutes les applications de services>| Surveiller les>>applications découvertes, puis rechercher « Office.OneNote ».
  • Recherchez la version de l’application commençant par 16001.xxxxx.xxxxx.x, afin d’identifier OneNote pour Windows 10 utilisateurs. La dernière version est 16001.14326.22094.0

    Remarque

    L’exemple de script de migration fonctionne uniquement avec OneNote pour les appareils Windows 10 sur la version16001.14326.22094.0

Exemple de personnalisation de script

Avant d’exécuter l’exemple de script, installez OneNote sur Windows sur les appareils des utilisateurs si l’application n’a pas été installée. Pour plus d’informations, consultez Guide de déploiement pour OneNote

Pour garantir une migration fluide vers OneNote pour Windows, les organisations doivent personnaliser l’exemple de script suivant pour effectuer ces étapes dans l’ordre :

  1. Vérifiez si OneNote pour Windows 10 est installé et si le chemin d’accès au dossier AppData de l’application existe (ce qui indique si l’utilisateur a déjà ouvert l’application) pour vérifier si la migration est nécessaire.
  2. Vérifiez si OneNote pour Windows est installé en vérifiant si le fichier exécutable existe sur l’appareil.
  3. Vérifiez la version de OneNote pour Windows 10 pour vous assurer qu’elle est sur la dernière version avec des fonctionnalités importantes pour éviter la perte de données pendant la migration.

Remarque

Ce script ne fonctionne pas pour les appareils avec OneNote pour Windows 10 versions antérieures à 16001.14326.22094. Les administrateurs informatiques doivent mettre à niveau ces appareils en fonction de la stratégie de leur organization.

Pour mettre à niveau les utilisateurs vers la dernière version via le téléchargement d’Appx, exécutez la commande suivante :
WinGet download 9wzdncrfhvjl --skip-license

  1. Arrêtez tous les processus OneNote pour Windows 10.
  2. Sauvegardez toutes les sections non synchronisées dans le dossier de bac à sable à l’aide de la onenote-uwp://backup: commande .
  3. Stockez les sauvegardes dans le bac à sable dans :
    $localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\AppData\Local\OneNote\16.0\BackUp\.
  4. Assurez-vous que seules les sections avec du contenu non synchronisé sont sauvegardées et organisées dans des dossiers où chaque dossier correspond à un bloc-notes.
  5. Analysez le UWPBackUpStatus.json pour vérifier que la sauvegarde a réussi.

Avertissement

La désinstallation avec une sauvegarde ayant échoué peut entraîner une perte de données.

  1. Déplacez les fichiers de sauvegarde vers un emplacement en dehors du bac à sable :
    $localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\
    étant donné que le chemin du bac à sable sera supprimé une fois l’application OneNote pour Windows 10 désinstallée.
  2. Désinstallez OneNote pour Windows 10.
  3. Vérifiez que OneNote pour Windows 10 est désinstallé par utilisateur et non par appareil.
    Ce processus permet d’atténuer les scénarios où des notes non synchronisées sont supprimées pour tous les comptes sur les appareils partagés.

Importante

Avant d’utiliser l’exemple de script, vous devez le personnaliser en fonction des exigences de déploiement et de migration spécifiques de votre organization.

#############################################
######   OneNote for Windows 10  ############
######   External Migration Script v6  ######
#############################################

## Optional: Helper function to write logs from script to UWPMigrationResult.log File and Console ##
function writeLogsToFileAndConsole {
    Param ([string]$logstring)
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logstringWithTimestamp = "[$timestamp] $logstring"
    $backupFolder = [System.Environment]::GetFolderPath('LocalApplicationData') + "\Microsoft\OneNote\16.0\Backup\OneNoteForWindows10"
    $outputFile = $backupFolder + "\UWPMigrationResult.log"

    if (-not (Test-Path $backupFolder))
    {
        New-Item -Path $backupFolder -ItemType Directory
    }

    if (-not (Test-Path $outputFile))
    {
        New-Item -Path $outputFile -ItemType File
    }

    Add-content $outputFile -value "$logstringWithTimestamp"
    Write-Host "$logstringWithTimestamp"
}

## Check if OneNote for Windows 10 is installed and if the AppData path exists ##
function checkOneNoteUWPInstall {
    $folderPath = "$env:LOCALAPPDATA\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\LocalState\AppData\Local\OneNote"
    $uwpApp = Get-AppxPackage | Where-Object {$_.Name -eq "Microsoft.Office.OneNote"}
    if ($null -ne $uwpApp)
    {
        $uwpVersion = $uwpApp.Version
        $uwpVersionObject = [System.Version]$uwpVersion
        writeLogsToFileAndConsole "OneNote UWP app version: $uwpVersion"
    }
    else {
        writeLogsToFileAndConsole "OneNote UWP App is not installed"
        exit
    }

    if (Test-Path $folderPath)
    {
        Write-Host "OneNote UWP AppData folder detected"
    }
    else {
        ($null -ne $uwpApp) 
        $uwpApp | Remove-AppxPackage
        writeLogsToFileAndConsole "OneNote AppData folder does not exist and OneNote UWP will now be uninstalled"
        exit
    }
}

## Check if OneNote for Windows is installed by checking the existence of the executable file ##
function checkOneNoteWin32Install {
    $oneNotePath = Join-Path $env:ProgramFiles "Microsoft Office\root\Office16\ONENOTE.EXE"
    
    if (Test-Path $oneNotePath) {
        writeLogsToFileAndConsole "OneNote Win32 is installed"   
    } else {
        writeLogsToFileAndConsole "OneNote Win32 is not installed"
        exit
    }
 }

## Check version of the user's OneNote for Windows 10 app ##
function checkUWPVersion {
    $uwpApp = Get-AppxPackage | Where-Object {$_.Name -eq "Microsoft.Office.OneNote"}
    if ($null -ne $uwpApp)
    {
        $uwpVersion = $uwpApp.Version
        $uwpVersionObject = [System.Version]$uwpVersion

        $updatedVersion = "16001.14326.22094.0"
        $updatedVersionObject = [System.Version]$updatedVersion

        $unsupportedVersion = "16001.14327.10000.0"
        $unsupportedVersionObject = [System.Version]$unsupportedVersion

        if ($uwpVersionObject -ge $unsupportedVersionObject)
        {
            writeLogsToFileAndConsole "Unsupported version of OneNote UWP app. Please check the Microsoft Store for updates"
            exit
        }

        if ($uwpVersionObject -lt $updatedVersionObject)
        {
            writeLogsToFileAndConsole "You must upgrade OneNote UWP to a version higher than 16.0.14326.21802. Please check the Microsoft Store"
            exit
        }
        else
        {
            writeLogsToFileAndConsole "OneNote UWP will backup and uninstall"
        }
    }
    else
    {
        writeLogsToFileAndConsole "No OneNote UWP detected therefore no need for migration"
        exit
    }
}

## Terminate the OneNote for Windows 10 app before executing the rest of the migration script ##
function killProcess {
    if (Get-Process -Name "OneNoteIm" -ErrorAction SilentlyContinue)
    {
        try
        {
            $uwpProcess = Get-Process -Name "OneNoteIm"
            Stop-Process -Id $uwpProcess.Id -Force
            Start-Sleep -Seconds 10
        }
        catch
        {
            writeLogsToFileAndConsole "An error occurred when killing the current OneNote UWP process: $($_.Exception.GetType().FullName)"
            writeLogsToFileAndConsole "$($_.Exception.Message)"
            exit
        }

        writeLogsToFileAndConsole "OneNote UWP process killed"
    }
}

## Run the protocol to back up unsynced sections into the sandbox path ##
function launchBackUp {
    try
    {
        Start-Process "onenote-uwp://backup:"
        Start-Sleep -Seconds 60
        writeLogsToFileAndConsole "OneNote UWP backup initiated"
    }
    catch
    {
        writeLogsToFileAndConsole "An error occurred when starting the backup: $($_.Exception.GetType().FullName)"
        writeLogsToFileAndConsole "$($_.Exception.Message)"
        exit
    }

    writeLogsToFileAndConsole "OneNote UWP backup in progress"
}

## Parse the results in the json files to validate that the backup was successful ##
function parseJson {
    try
    {
        $localAppDataPath = [System.Environment]::GetFolderPath('LocalApplicationData')
        $jsonPath = "$localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\LocalState\AppData\Local\OneNote\16.0\UWPBackUpStatus.json"
        if(!(test-path $jsonPath))
        {
            writeLogsToFileAndConsole "Backup Json file path is not valid"
            exit
        }

        $backupJsonFileContent = Get-Content -Path $jsonPath -Raw | ConvertFrom-Json
        $status = $backupJsonFileContent."UWP Backup Status"
        if ($status -eq "Completed")
        {
            $jsonPath2 = "$localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\LocalState\AppData\Local\OneNote\16.0\UWPSyncStatus.json"
            if(test-path $jsonPath2)
            {
                $syncStatusJsonContent = Get-Content -Raw -Path $jsonPath2
                $syncStatusJsonObject = COnvertFrom-Json $syncStatusJsonContent
                foreach ($key in $syncStatusJsonObject.PSObject.Properties)
                {
                    $value = $syncStatusJsonObject.$($key.Name)
                    if ($value.StartsWith("Contains pending outbounding changes: true,"))
                    {
                        if ($backupJsonFileContent."Number of sections Backed up" -eq 0)
                        {
                            writeLogsToFileAndConsole "No error occurred when backing up but outbounding changes were not backed up successfully"
                            exit
                        }
                        else
                        {
                            break
                        }
                    }
                }
            }

            writeLogsToFileAndConsole "OneNote UWP backup is completed and status is saved"
        }
        elseif ($status -eq "")
        {
            writeLogsToFileAndConsole "$status"
            writeLogsToFileAndConsole "No error occurred but backup did not finish. We cannot continue migration. Consider increasing the Start-Sleep time in line 130 and rerun the script"
            exit
        }
        else
        {
            writeLogsToFileAndConsole "No error occurred but backup status is $status. We cannot continue migration. Consider increasing the Start-Sleep time in line 130 and rerun the script"
            exit
        }
    }
    catch
    {
        writeLogsToFileAndConsole "An error occurred when finishing the backup: $($_.Exception.GetType().FullName)"
        writeLogsToFileAndConsole "$($_.Exception.Message)"
        exit
    }
}

## Copy the backup files to a directory outside of the sandbox path ##
function moveBackup {
try
    {
        $localAppDataPath = [System.Environment]::GetFolderPath('LocalApplicationData')
        $sourcePath = "$localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\LocalState\AppData\Local\OneNote\16.0\BackUp\"
        $destinationPath = [System.Environment]::GetFolderPath('LocalApplicationData') + "\Microsoft\OneNote\16.0\Backup\OneNoteForWindows10\"

        Copy-Item -Path $sourcePath\* -Destination $destinationPath -Recurse -Force

        $sourcePath = "$localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\LocalState\AppData\Local\OneNote\16.0"
        $fileExtensions = "*.json", "*.txt"
        foreach ($fileExtension in $fileExtensions)
        {
            $files = Get-ChildItem -Path $sourcePath -Filter $fileExtension
            foreach ($file in $files)
            {
                Copy-Item -Path $file.FullName -Destination $destinationPath -Force
            }
        }
    }
    catch
    {
        writeLogsToFileAndConsole "An error occurred when moving the backup files: $($_.Exception.GetType().FullName)"
        writeLogsToFileAndConsole "$($_.Exception.Message)"
        exit
    }

    writeLogsToFileAndConsole "Backup files copied successfully from $sourcePath to $destinationPath"
 }

## Uninstall the OneNote for Windows 10 app ##
function uninstallUWP {
    $uwpApp = Get-AppxPackage | Where-Object {$_.Name -eq "Microsoft.Office.OneNote"}
    if ($null -ne $uwpApp)
    {
        $uwpApp | Remove-AppxPackage
        writeLogsToFileAndConsole "OneNote UWP version uninstalled"
    }
}

function MainRoutine {
    checkOneNoteWin32Install
    checkOneNoteUWPInstall
    checkUWPVersion
    killProcess
    launchBackUp
    parseJson
    moveBackup
    uninstallUWP
}

## Executes the main routine ##
MainRoutine

Accès aux notes migrées

Après la migration, les utilisateurs peuvent récupérer leurs notes en :

  1. Ouverture de la nouvelle application OneNote sur Windows .
  2. Connexion à son compte.
  3. Ouverture de leurs blocs-notes.

S’il manque des notes, case activée le dossier de sauvegarde créé aux étapes précédentes.

Pour passer en revue les sauvegardes via OneNote sur Windows :

  • Accédez à Fichier -> Ouvrir les sauvegardes -> Accédez au chemin du fichier de sauvegarde.

Résolution des problèmes

  • Passez en revue les UWPBackupStatus.json fichiers et UWPSyncStatus.json dans le dossier de sauvegarde de l’utilisateur pour obtenir des informations détaillées sur les états de sauvegarde et de synchronisation.

  • Pour les erreurs rencontrées pendant la migration, reportez-vous au fichier journal situé dans la sauvegarde générée précédemment (étape 1.d).

Si la onenote-uwp://backup: commande échoue :

  • Vérifiez que l’application OneNote pour Windows 10 est l’application par défaut liée au onenote-uwp protocole.
  • Consultez l’article de support approprié pour vous assurer que le protocole est bien joint à OneNote pour Windows 10.

Attention

Soyez prudent lorsque vous utilisez des commandes trouvées en ligne. Testez toujours les commandes dans un environnement contrôlé avant de les déployer organization à l’échelle de pour éviter les conséquences inattendues, telles que celles résultant de la commande Remove-AppxPackage.

Pour obtenir de l’aide ou des demandes de renseignements, contactez Support Microsoft.