пятница, 15 марта 2019 г.

Обновление до Windows 10, ошибки на файлы lnk в папке Recent

Пока обновляли тестовую группу машин Window 7 до Windows 10, на паре машин столкнулся с проблемой: до первого ребута на машине валится таск, машина ребутится, делает откат, создается профиль username.000, даже если машину потом заапгрейдить еще раз, то часть приложений будет ссылаться на username000\*, часть на username\*, например, локальные pst в Outlook.

В логе %systemdrive%\$WINDOWS.~BT\Panther\setupact.log видим следующую ошибку:

Operation failed: First boot apply. Error: 0x8007042B[gle=0x000000b7]
Operation execution failed: 13. hr = 0x8007042B
ExecuteOperations: Failed execution phase Post First Boot. Error: 0x8007042B
Operation execution failed.
CSetupPlatformPrivate::Execute: Failed to deserialize/execute post-FirstBoot operations. Error: 0x8007042B
Persisting diagnostics data to C:\$WINDOWS.~BT\Sources\Diagnostics\diagnostics.dat
Diagnostics data saved successfully
SETUPPLATFORMCOMM: Progress message received: Phase: First Boot, Operation: Migrate data, Percentage: 58%
WINDEPLOY error code is 0x80004005. Will not attempt uninstall

В логе %systemdrive%\$WINDOWS.~BT\Panther\setuperr.log видим следующую ошибку:

Error 183 while applying object C:\Users\username\AppData\Roaming\Microsoft\Windows\Recent [022019.pdf.lnk]. Shell application requested abort[gle=0x00000002]


До конца не уверен, что проблема с дублированным профилем username000 связана именно с этим и создается он во время отката, а не после повторного запуска таска обновления, но на обеих машинах была аналогичная проблема с файлами в каталоге Recent. При этом у первого пользователя в новый профиль переехало все, кроме библиотеки Изображения, у второго пользователя профиль переехал 1 в 1.


Есть предположение, почему это происходит: ярлык-ссылка на файл есть, а самого файла уже нет. Этот ярлык не просто копируется, а пытается создаться заново с указанием на таргет, которого уже нет, но это неточно.

В каталоге Recent хранятся ссылки-ярлыки на недавно открытые документы. Это то самое, что можно увидеть в Пуск-Недавние документы или при правом клике на ярлык Word, закрепленного на панели задач - быстро открыть последние документы, открытые в приложении.

Через GPO можно запретить создавать эти ссылки, можно чистить их при выходе пользователя. Первое не подходит, потому что текущие ссылки оно не очистит, второе тоже - неизвестно, разлогинится ли юзер перед тем, как обновляться. Можно, конечно, пустить машину для начала в ребут.

В итоге написал небольшой скрипт. Коллега сказал, что некошерно, т.к. он пробежится по всем профилям, даже системным, но там этих файлов-ссылок быть не должно.


 cd $env:systemdrive\  
 $a=dir users  
 $a.fullname | %{remove-item ($_+"\appdata\roaming\microsoft\windows\recent\*") -Confirm:$false -Recurse}  

Скрипт пробегается рекурсивно по всем профилям в папке Users на системном диске, заглядывает в Recent и удаляет все оттуда.

После этого собираем пакет, указываем source folder с нашим скриптом, программы не создаем. Не забываем сделать Distribute Content на DP.
Далее создаем в TS для обновления ОС шаг - Run powershell script повыше Upgrade operating system и указываем пакет и имя нашего скрипта, Execution policy ставим в bypass:


После этого запускаем TS повторно, радуемся результату.

1 комментарий:

  1. Operational excellence is on the forefront of everything we do, and that includes exceptional transparency and clarity when interacting with our prospects. We honor all commitments, deal in facts, and Travel Toiletry Bag talk all through every step of a program. With a focus on to} Outstanding Craftsmanship, we concentrate on completely custom constructed merchandise match your|to suit with|swimsuit} your} wants.

    ОтветитьУдалить