# Aaron PESCASIO
Durant mon alternance chez le Groupe ecole, j'ai dû faire une trentaine de migration d'un ancien PC à un nouveau PC. J'ai donc décidé de créer ce script qui simplifiera et automatisera l'ensemble du processus.
export_ancienPC.ps1:
# Un script "export" qu'on executera sur l'ancien PC pour exporter: # les signatures Outlook, les imprimantes, # les favoris Chrome/Edge... et les copier coller dans le disque espace personnel de stockage dans le réseau $username23 = "$env:USERDOMAIN\$env:USERNAME" $date23 = Get-Date -Format "dd/MM/yyyy à HH:mm:ss" $log23 = "$username23 a executé le script: export_ancienPC.bat le $date23" Add-Content -Path "\\adds01\LOGI\ap_script\ap_script_logs\export_ancienPC.log" -Value $log23 # Si le dossier MigrationP5_identifiant n'existe pas => Creez le mais si ça existe déjà tu me l'écris if (!(Test-Path -Path "\\adds01\users-data\$env:USERNAME\MIGRATIONP5_$env:USERNAME" -PathType Container)) { New-Item -Type Directory "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME" } else { Write-Output "Dossier 'MigrationP5_$env:USERNAME' existe deja" } # Si le fichier Bookmarks (Chrome) n'existe pas => Tu me l'écris mais si ça existe tu le copie colle dans le disque espace personnel stockage dans le réseau if (!(Test-Path -Path "$env:localappdata\Google\Chrome\User Data\Default\Bookmarks")) { Write-Output "Google Chrome favoris n'existe pas " } else { Copy-Item "$env:localappdata\Google\Chrome\User Data\Default\Bookmarks" "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\Bookmarks_ch" -Force } # Si le fichier Bookmarks (Edge) n'existe pas => Tu me l'écris mais si ça existe tu le copie colle dans le disque espace personnel stockage dans le réseau if (!(Test-Path -Path "$env:localappdata\Microsoft\Edge\User Data\Default\Bookmarks")) { Write-Output "Microsoft Edge favoris n'existe pas " } else { Copy-Item "$env:localappdata\Microsoft\Edge\User Data\Default\Bookmarks" "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\Bookmarks_ms" -Force } # S'il n'y a pas de signatures Outlook => Tu me l'écris mais si ça existe tu le copie colle dans le disque espace personnel stockage dans le réseau if (!(Test-Path -Path "$env:appdata\Microsoft\Signatures" -PathType Container)) { Write-Output "Signatures Outlook n'existe pas" } else { Copy-Item "$env:appdata\Microsoft\Signatures" "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\" -Recurse -Force } # Export imprimantes (copie la liste d'imprimante sur l'ancien PC puis la colle dans le disque espace personnel stockage dans le réseau) get-printer "\\imprimant.share.loc\*" | Select-Object Name | Export-Csv -Path "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\ecoleprinters.csv" -NoTypeInformation
import_nouveauPC.ps1:
# Script (à executer sur le nouveau PC) pour importer les: # signatures Outlook, les imprimantes, les favoris Chrome/Edge... # sur le disque de nouveau PC! $username23 = "$env:USERDOMAIN\$env:USERNAME" $date23 = Get-Date -Format "dd/MM/yyyy à HH:mm:ss" $log23 = "$username23 a executé le script: import_nouveauPC.bat le $date23" Add-Content -Path "\\adds01\LOGI\ap_script\ap_script_logs\import_nouveauPC.log" -Value $log23 # Import Favoris => Chrome Copy-Item "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\Bookmarks_ch" "$env:localappdata\Google\Chrome\User Data\Default\Bookmarks" -Force #Import Favoris => Edge Copy-Item "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\Bookmarks_ms" "$env:localappdata\Microsoft\Edge\User Data\Default\Bookmarks" -Force #Import Signatures Outlook if (!(Test-Path -Path "$env:appdata\Microsoft\Signatures" -PathType Container)) { New-Item -Type Directory "$env:appdata\Microsoft\Signatures" Copy-Item "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\Signatures\*" "$env:appdata\Microsoft\Signatures" -Force } else { Copy-Item "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\Signatures\*" "$env:appdata\Microsoft\Signatures" -Force } #Import imprimantes sur le nouveau PC $Printers = Import-Csv -Path "\\adds01\personnel\$env:USERNAME\MIGRATIONP5_$env:USERNAME\ecoleprinters.csv" foreach ($Printer in $Printers) { $PrinterName = $Printer.Name if (Get-Printer -Name $PrinterName 2>$null) { Write-Host "L'imprimante $PrinterName est deja installe!" } else { Add-Printer -ConnectionName $PrinterName } }