Руководство по миграции OneNote для Windows 10
Важно!
Поддержка OneNote для Windows 10 будет завершена в октябре 2025 г. Корпоративным клиентам следует перейти с OneNote для Windows 10 на OneNote в Windows, которая доступна в Microsoft Store и имеет подписку На Microsoft 365. OneNote в Windows предлагает новые функции и обновления, а также позволяет настраивать параметры пользователя с помощью групповая политика.
В этой статье содержатся рекомендации по миграции организации из OneNote для Windows 10 в OneNote для Windows. Он содержит инструкции по идентификации пользователей, настройке скриптов миграции и обеспечению целостности данных на протяжении всего процесса. Вы найдете шаги по устранению неполадок и рекомендации, которые помогут свести к минимуму нарушения работы и защитить данные пользователей во время миграции.
Определение пользователей в OneNote для Windows 10:
Чтобы определить пользователей или устройства в организации с помощью OneNote для Windows 10 через Microsoft Intune, выполните следующие действия, чтобы запустить отчет:
- В Intune перейдите к: Все приложения служб>| > Мониторинг >обнаруженных приложений монитора, а затем выполните поиск по запросу "Office.OneNote".
- Найдите версию приложения, начиная с
16001.xxxxx.xxxxx.x
, чтобы определить OneNote для Windows 10 пользователей. Последняя версия :16001.14326.22094.0
Примечание.
Пример скрипта миграции работает только с OneNote для Windows 10 устройств в версии
16001.14326.22094.0
Настройка примера скрипта
Чтобы обеспечить бесперебойную миграцию в OneNote для Windows, организациям необходимо настроить следующий пример сценария для выполнения этих функций:
Устанавливает OneNote в Windows на пользовательских устройствах. Дополнительные сведения см. в статье Руководство по развертыванию для OneNote.
Обновления OneNote для Windows 10 в последнюю сборку, чтобы включить важные функции и предотвратить потерю данных во время миграции несинхронизованных заметок.
Примечание.
Этот скрипт не обновляет OneNote для Windows 10 устройств, не использующих версию 16001.14326.22094. ИТ-администраторы должны обновить эти устройства в соответствии с политикой своей организации.
Завершает все процессы OneNote для Windows 10.
Создает резервную копию всех несинхронизованных записных книжек в папку резервного копирования пользователя с помощью
onenote-uwp://backup:
команды .- Резервные копии хранятся в
C:\temp\OneNoteMigration
, однако вы можете изменить путь в соответствии с потребностями вашей организации. - Каждая резервная копия создает соответствующую папку для каждой записной книжки с несинхронизованными разделами в этом пути.
- Резервные копии хранятся в
Выполните синтаксический
UWPBackUpStatus.json
анализ, чтобы проверить успешность резервного копирования.- Удаление с помощью неудачной резервной копии может привести к потере данных.
Примечание.
Чтобы выполнить резервное копирование, необходимо установить OneNote для Windows, а OneNote для Windows 10 необходимо обновить до версии 16001.14326.22094 или более поздней.
- Удаление с помощью неудачной резервной копии может привести к потере данных.
Удаляет OneNote для Windows 10.
- Убедитесь, что OneNote для Windows 10 удаляется на основе пользователя, а не на устройстве. Этот процесс помогает смягчить сценарии, в которых общие устройства удаляют несинхронизованные заметки для всех учетных записей.
Важно!
Перед использованием примера скрипта необходимо настроить его в соответствии с конкретными требованиями к развертыванию и миграции вашей организации.
#############################################
###### 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
Доступ к перенесенным заметкам
После миграции пользователи могут получать свои заметки, выполнив следующие действия:
- Открытие нового приложения OneNote для Windows .
- Вход в свою учетную запись.
- Открытие записных книжек.
Если какие-либо заметки отсутствуют, проверка папку резервного копирования, созданную на предыдущих шагах.
Чтобы просмотреть резервные копии с помощью OneNote в Windows, выполните приведенные далее действия.
- Перейдите к файлу —> Открыть резервные копии.> Перейдите к пути к файлу резервной копии.
Устранение неполадок
Просмотрите
UWPBackupStatus.json
файлы иUWPSyncStatus.json
в папке резервного копирования пользователя, чтобы получить подробные сведения о состоянии резервного копирования и синхронизации.Сведения об ошибках, возникших во время миграции, см. в файле журнала, расположенном в созданной ранее резервной копии (шаг 1.d).
Если команда завершается ошибкой onenote-uwp://backup:
:
- Убедитесь, что приложение OneNote для Windows 10 является приложением по умолчанию, связанным с протоколом
onenote-uwp
. - Обратитесь к соответствующей статье поддержки, чтобы обеспечить правильное вложение протокола в OneNote для Windows 10.
Предостережение
Будьте осторожны при использовании команд, найденных в Интернете. Всегда тестируйте команды в управляемой среде перед их развертыванием в масштабах всей организации, чтобы избежать непредвиденных последствий, таких как те, которые возникают в результате выполнения команды Remove-AppxPackage.
Чтобы получить дополнительную помощь или запросы, обратитесь к служба поддержки Майкрософт.