Migration In place Windows 2012 R2 vers Windows 2016, problèmes Windows Update et tâches planifiées

Migration In place Windows 2012 R2 vers Windows 2016, problèmes Windows Update et tâches planifiées

Tu as mis à jour ton serveur Windows 2012 R2 vers Windows 2016 avec la méthode Upgrade in place.

Les mises à jours cumulatives ne s'installent pas sur Windows 2016, après l'application et le redémarrage l'annulation des mises à jour est lancée, c'est donc un échec !

La solution efface la tâche planifiée suivante :

"Microsoft\Windows\PI\SecureBootEncodeUEFI"

Ou la clef de registre

"HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\PI\SecureBootEncodeUEFI"


C'est un problème lié aux tâches planifiées lors de la migration vers Windows 2016.

Une autre anomalie existe, les tâches planifiées à la racine du scheduler disparaissent (sont fantôme) lors de la mise à jour vers 2016. Pense à les exporter et réimporter après la mise à jour.

Un petit script powershell

#Avant l'upgrade: Export en XML des tâches planifiées de la racine

$LogFile = "C:\SVG_tasks\ExportScheduledTasks.log"

$BackupPath = "C:\SVG_tasks"

$TaskFolders = "\"

Start-Transcript -Path $LogFile

Write-Output "Start exporting of scheduled tasks."







Foreach ($TaskFolder in $TaskFolders)

{

Write-Output "Task folder: $TaskFolder"

If($TaskFolder -ne "\") { md $BackupPath$TaskFolder | Out-Null }

$Tasks = Get-ScheduledTask -TaskPath $TaskFolder -ErrorAction SilentlyContinue

Foreach ($Task in $Tasks)

{

$TaskName = $Task.TaskName

If(($TaskName -match "User_Feed_Synchronization") -or ($TaskName -match "Optimize Start Menu Cache Files"))

{

}

Else

{

$TaskInfo = Export-ScheduledTask -TaskName $TaskName -TaskPath $TaskFolder

$TaskInfo | Out-File "$BackupPath$TaskFolder$TaskName.xml"

Write-Output "Saved file $BackupPath$TaskFolder$TaskName.xml"

}

}

}




Write-Output "Exporting of scheduled tasks finished."




Stop-Transcript

#Après l'upgrade : Import des tâches à partir des fichiers XML

$files = Get-ChildItem -Path "C:\SVG_tasks" -Filter "*.xml"

foreach ($file in $files) {

   $taskName = $file.BaseName

    Register-ScheduledTask -Xml (Get-Content $file.FullName | Out-String) -TaskName $taskName -User domain\toto -Password tata

   Write-Host "La tâche $taskName a été importée à partir de $file"