Linee guida per la migrazione di OneNote per Windows 10
Importante
OneNote per Windows 10 raggiungerà la fine del supporto a ottobre 2025. I clienti aziendali devono passare da OneNote per Windows 10 a OneNote in Windows, disponibile da Microsoft Store e con un abbonamento a Microsoft 365. OneNote in Windows offre nuove funzionalità e aggiornamenti e consente di personalizzare le impostazioni utente tramite Criteri di gruppo.
Questo articolo fornisce indicazioni per la migrazione dell'organizzazione da OneNote per Windows 10 a OneNote per Windows. Include istruzioni per identificare gli utenti, personalizzare gli script di migrazione e garantire l'integrità dei dati durante tutto il processo. Sono disponibili i passaggi di risoluzione dei problemi e le procedure consigliate per ridurre al minimo le interruzioni e proteggere i dati degli utenti durante la migrazione.
Identificazione degli utenti in OneNote per Windows 10:
Per identificare utenti o dispositivi nell'organizzazione usando OneNote per Windows 10 tramite Microsoft Intune, seguire questa procedura per eseguire un report:
- In Intune passare a: Tutte le app di servizi>| Monitorare>le>app individuate e quindi cercare "Office.OneNote".
- Cercare la versione dell'applicazione a partire da
16001.xxxxx.xxxxx.x
, per identificare OneNote per gli utenti Windows 10. La versione più recente è16001.14326.22094.0
Nota
Lo script di migrazione di esempio funziona solo con OneNote per i dispositivi Windows 10 nella versione
16001.14326.22094.0
Personalizzazione di script di esempio
Per garantire una migrazione senza problemi a OneNote per Windows, le organizzazioni devono personalizzare lo script di esempio seguente per completare queste funzioni:
Installa OneNote in Windows nei dispositivi utente. Per altre informazioni, vedere Guida alla distribuzione per OneNote
Aggiornamenti OneNote per Windows 10 alla build più recente per incorporare funzionalità importanti e impedire la perdita di dati durante la migrazione di note non sincronizzate.
Nota
Questo script non aggiorna OneNote per Windows 10 dispositivi non presenti nella versione 16001.14326.22094. Gli amministratori IT devono aggiornare questi dispositivi in base ai criteri dell'organizzazione.
Termina tutti i processi di OneNote per Windows 10.
Esegue il backup di eventuali notebook non sincronizzati nella cartella di backup dell'utente usando il
onenote-uwp://backup:
comando .- I backup vengono archiviati in
C:\temp\OneNoteMigration
, tuttavia, è possibile modificare il percorso in base alle esigenze dell'organizzazione. - Ogni backup crea una cartella corrispondente per ogni notebook con sezioni non sincronizzate all'interno di questo percorso.
- I backup vengono archiviati in
Analizzare per convalidare l'esito
UWPBackUpStatus.json
positivo del backup.- La disinstallazione con un backup non riuscito può causare la perdita di dati.
Nota
Per eseguire il backup, è necessario installare OneNote per Windows e OneNote per Windows 10 deve essere aggiornato alla versione 16001.14326.22094 o successiva.
- La disinstallazione con un backup non riuscito può causare la perdita di dati.
Disinstalla OneNote per Windows 10.
- Assicurarsi che OneNote per Windows 10 venga disinstallato su base utente e non su base di dispositivo. Questo processo consente di attenuare gli scenari in cui i dispositivi condivisi hanno rimosso note non sincronizzate per tutti gli account.
Importante
Prima di usare lo script di esempio, è necessario personalizzarlo in base ai requisiti di distribuzione e migrazione specifici dell'organizzazione.
#############################################
###### OneNote for Windows 10 ############
###### External Migration Script v5 ######
#############################################
## Creates backupFolder and writes log 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"
$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"
}
## Checks if OneNote UWP is installed and if app data exists, writes version to log file and console ##
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 "UWP OneNote app version: $uwpVersion"
} else {
writeLogsToFileAndConsole "OneNote UWP App is not installed"
exit
}
if (Test-Path $folderPath) {
Write-Host "AppData folder detected"
} else {
($null -ne $uwpApp)
$uwpApp | Remove-AppxPackage
writeLogsToFileAndConsole "AppData folder does not exist and OneNote UWP will now be uninstalled"
exit
}
}
## Checks if OneNote Win32 is installed by checking the existence of the executable file and checks the version ##
function checkOneNoteWin32Install {
$oneNotePath = Join-Path $env:ProgramFiles "Microsoft Office\root\Office16\ONENOTE.EXE"
$registryPath = "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration"
$versionValueName = "ClientVersionToReport"
$registry = Get-ItemProperty -Path $registryPath
if (Test-Path $oneNotePath) {
if ($registry.PSObject.Properties[$versionValueName]) {
$versionValue = $registry.$versionValueName
writeLogsToFileAndConsole "OneNote Win32 Version Value: $versionValue is installed at path $oneNotePath"
} else {
writeLogsToFileAndConsole "OneNote Win32 is not installed"
exit
}
}
## Checks for backup folder path
$registryPath = "HKCU:\SOFTWARE\Microsoft\Office\16.0\OneNote\Options\Paths"
$backupValueName = "BackupFolderPath"
if (Test-Path $registryPath) {
$registry = Get-ItemProperty -Path $registryPath
if ($registry.PSObject.Properties[$backupValueName]) {
$backupValue = $registry.$backupValueName
writeLogsToFileAndConsole "OneNote Win32 Backup Path Value: $backupValue"
}
}
}
## Updates OneNote for Windows 10 to the latest version available ##
function updateUWPVersion {
$uwpApp = Get-AppxPackage | Where-Object {$_.Name -eq "Microsoft.Office.OneNote"}
if ($null -ne $uwpApp) {
$uwpVersion = $uwpApp.Version
$uwpVersionObject = [System.Version]$uwpVersion
$updatedVersion = "16001.14326.22008.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
}
}
## Terminates 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"
}
}
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"
}
## Parses 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
}
}
## Copies the backup files to the local app data folder ##
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\"
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"
}
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
updateUWPVersion
launchBackUp
killProcess
parseJson
moveBackup
uninstallUWP
}
## Executes the main routine ##
MainRoutine
Accesso alle note di cui è stata eseguita la migrazione
Dopo la migrazione, gli utenti possono recuperare le note:
- Apertura della nuova applicazione OneNote in Windows .
- Accesso al proprio account.
- Apertura dei notebook.
Se mancano note, controllare la cartella di backup creata nei passaggi precedenti.
Per esaminare i backup tramite OneNote in Windows:
- Passare a File -> Apri backup:> passare al percorso del file di backup.
Risoluzione dei problemi
Esaminare i
UWPBackupStatus.json
file eUWPSyncStatus.json
nella cartella di backup dell'utente per informazioni dettagliate sugli stati di backup e sincronizzazione.Per gli errori rilevati durante la migrazione, fare riferimento al file di log che si trova nel backup generato in precedenza (passaggio 1.d).
Se il onenote-uwp://backup:
comando ha esito negativo:
- Assicurarsi che OneNote per Windows 10'app sia l'app predefinita collegata al
onenote-uwp
protocollo. - Consultare l'articolo di supporto pertinente per assicurarsi che l'allegato del protocollo a OneNote sia corretto per Windows 10.
Attenzione
Prestare attenzione quando si usano i comandi trovati online. Testare sempre i comandi in un ambiente controllato prima di distribuirli a livello di organizzazione per evitare conseguenze impreviste, ad esempio quelle risultanti dal comando Remove-AppxPackage.
Per ulteriori informazioni o richieste, contattare supporto tecnico Microsoft.