Mon espace IT

#Blog_IT > orienté systèmes et réseaux

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

Aucun commentaire

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"

Aucun commentaire :

Enregistrer un commentaire