Diretrizes de migração do OneNote para Windows 10

Importante

O OneNote para Windows 10 chegará ao fim do suporte em outubro de 2025. Os clientes corporativos devem mudar do OneNote para Windows 10 para o OneNote para Windows, que está disponível na Microsoft Store e com uma assinatura do Microsoft 365. O OneNote no Windows oferece novos recursos e atualizações e permite personalizar as configurações do usuário por meio da Política de Grupo.

Este artigo fornece orientações para migrar sua organização do OneNote para Windows 10 para o OneNote para Windows. Ele inclui instruções para identificar usuários, personalizar scripts de migração e garantir a integridade dos dados em todo o processo. Você encontra etapas de solução de problemas e práticas recomendadas para ajudar a minimizar a interrupção e proteger os dados do usuário durante a migração.

Identificando usuários no OneNote para Windows 10:

Para identificar usuários ou dispositivos em sua organização usando o OneNote para Windows 10 por meio do Microsoft Intune, siga estas etapas para executar um relatório:

  • No Intune, navegue até: Todos os serviços>Aplicativos | Monitor:>Monitore>aplicativos descobertos e procure por "Office.OneNote".
  • Procure a versão do aplicativo que começa com 16001.xxxxx.xxxxx.x, para identificar os usuários do OneNote para Windows 10. A versão mais recente é 16001.14326.22094.0

    Observação

    O script de migração de exemplo funciona apenas com o OneNote para dispositivos Windows 10 na versão16001.14326.22094.0

Exemplo de personalização de script

Antes de executar o script de exemplo, instale o OneNote no Windows em dispositivos do usuário se o aplicativo não tiver sido instalado. Confira mais informações em Guia de implantação do OneNote

Para garantir uma migração tranquila para o OneNote para Windows, as organizações devem personalizar o seguinte script de exemplo para concluir essas etapas na ordem:

  1. Verifique se o OneNote para Windows 10 está instalado e se o caminho para a pasta AppData do aplicativo existe (o que indica se o usuário já abriu o aplicativo antes) para verificar se a migração é necessária.
  2. Verifique se o OneNote para Windows está instalado, verificando se o arquivo executável existe no dispositivo.
  3. Verifique a versão do OneNote para Windows 10 para garantir que esteja na versão mais recente com recursos importantes para evitar a perda de dados durante a migração.

Observação

Esse script não funciona para dispositivos com OneNote para versões do Windows 10 abaixo de 16001.14326.22094. Os administradores de TI devem atualizar esses dispositivos de acordo com a política da organização.

Para atualizar os usuários para a versão mais recente por meio do download do Appx, execute o seguinte comando:
WinGet download 9wzdncrfhvjl --skip-license

  1. Encerre todos os processos do OneNote para Windows 10.
  2. Faça backup de todas as seções não sincronizadas na pasta sandbox usando o onenote-uwp://backup: comando.
  3. Armazene os backups na área restrita em:
    $localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\AppData\Local\OneNote\16.0\BackUp\.
  4. Certifique-se de que apenas as seções com conteúdo não sincronizado sejam copiadas e organizadas em pastas em que cada pasta corresponde a um bloco de anotações.
  5. Analise o UWPBackUpStatus.json para validar se o backup foi bem-sucedido.

Aviso

A desinstalação com um backup com falha pode levar à perda de dados.

  1. Mova os arquivos de backup para um local fora da área restrita:
    $localAppDataPath\Packages\Microsoft.Office.OneNote_8wekyb3d8bbwe\
    uma vez que o caminho da área restrita será excluído assim que o aplicativo OneNote para Windows 10 for desinstalado.
  2. Desinstale o OneNote para Windows 10.
  3. Certifique-se de que o OneNote para Windows 10 seja desinstalado por usuário e não por dispositivo.
    Esse processo ajuda a mitigar cenários em que dispositivos compartilhados têm notas não sincronizadas removidas para todas as contas.

Importante

Antes de usar o script de exemplo, você deve personalizá-lo para atender aos requisitos específicos de implantação e migração da sua organização.

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

Acessar anotações migradas

Após a migração, os usuários podem recuperar suas anotações:

  1. Abrindo o novo aplicativo OneNote no Windows .
  2. Entrando em sua conta.
  3. Abrindo os blocos de anotações.

Se faltarem anotações, marque a pasta de backup criada nas etapas anteriores.

Para revisar backups por meio do OneNote no Windows:

  • Navegue até Arquivo -> Abrir Backups -> Navegue até o caminho do arquivo de backup.

Solução de problemas

  • Examine os UWPBackupStatus.json arquivos e UWPSyncStatus.json na pasta de backup do usuário para obter informações detalhadas sobre os status de backup e sincronização.

  • Para erros encontrados durante a migração, consulte o arquivo de log localizado no backup gerado anteriormente (etapa 1.d).

Se o onenote-uwp://backup: comando falhar:

  • Certifique-se de que o aplicativo OneNote para Windows 10 seja o aplicativo padrão vinculado ao onenote-uwp protocolo.
  • Consulte o artigo de suporte relevante para garantir a conexão de protocolo correta ao OneNote para Windows 10.

Cuidado

Seja cauteloso ao usar comandos encontrados online. Sempre teste os comandos em um ambiente controlado antes de implantá-los em toda a organização para evitar consequências não intencionais, como as resultantes do comando Remove-AppxPackage.

Para obter mais assistência ou dúvidas, entre em contato com o Suporte da Microsoft.