ローカルのデータバックアップスクリプト

08.09

PCの入れ替えの際、必ず問題となるのがユーザーのデータをどのように移動させるのかです。

最近はクラウド化が進んでいるので全く問題ない!という組織もありますが、やはり多くの企業ではローカルに置いてあることが多いと思います。

以前に作成したデスクトップにデータを移動させるサンプルスクリプトです。

これをUSBメモリなどに移動させて新しいPCに移動するか、時間を区切ってOneDriveなどに移動するかなどは組織にあったやり方を選択してください。

 

$UserName = $env:Username
$Desktop = “$env:userprofile\Desktop”

$ErrorActionPreference = “silentlycontinue”

# ユーザー名と外付けHDDのドライブレターを確認

$startmessage = “Data Backup Copy from this PC is about to start.`nPlease do NOT close the command window until the completion message show up.`n`nWhen Complete, all data will be save on the Desktop in a new folder.`nData copy can take around 30 minutes per 10GB.”
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show(“$startmessage”,”System message”)

$Drive = “”

Write-Output “Start copying data to the external HDD. It takes about 30 minutes per 10 GB. ”

Write-Output “”

Write-Output “Closing the screen will end copying.”

Write-Output “”

Write-Output “If you accidentally close it, please try again.”

Write-Output “”

$Bfoldername = “$username” + “_BackupData”

$BFolder = “$Desktop\$Bfoldername”

New-Item $BFolder -ItemType Directory -Force

Write-Output “The system created a folder for saving on the external HDD.”

Write-Output “”

# デスクトップフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\desktop”

if($exist)

{

Write-Output “Start copying the Desktop folder.”

Copy-Item “c:\users\$username\desktop” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the Desktop folder is completed.”

Write-Output “”

}

# ドキュメントフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\documents”

if($exist)

{

Write-Output “Start copying the document folder.”

Copy-Item “c:\users\$username\documents” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the document folder is completed.”

Write-Output “”

}

# ピクチャフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\pictures”

if($exist)

{

Write-Output “Start copying the pictures folder.”

Copy-Item “c:\users\$username\pictures” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the pictures folder is completed.”

Write-Output “”

}

# ビデオフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\videos”

if($exist)

{

Write-Output “Start copying the videos folder.”

Copy-Item “c:\users\$username\videos” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the videos folder is completed.”

Write-Output “”

}

# IEお気に入りフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\favorites”

if($exist)

{

Write-Output “Start copying the IE favorites folder.”

Copy-Item “c:\users\$username\favorites” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the IE favorites folder is completed.”

Write-Output “”

}

# クロームお気に入りフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\AppData\Local\Google\Chrome\User Data\Default\Bookmarks”

if($exist)

{

Write-Output “Start copying the Chrome favorites folder.”

New-Item “$Bfolder\Chrome” -ItemType Directory -Force

Copy-Item “c:\users\$username\AppData\Local\Google\Chrome\User Data\Default\Bookmarks” “$BFolder\Chrome” -Recurse -force

Copy-Item “c:\users\$username\AppData\Local\Google\Chrome\User Data\Default\Bookmarks.bak” “$BFolder\Chrome” -Recurse -force

Write-Output “”

Write-Output “Copy of the Chrome favorites is completed.”

Write-Output “”

}

# 辞書フォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\AppData\Roaming\Microsoft\IMJP14”

if($exist)

{

Write-Output “Start copying the IME data folder.”

Copy-Item “c:\users\$username\AppData\Roaming\Microsoft\IMJP14” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the IME data folder folder is completed.”

Write-Output “”

}

# Outlookアーカイブにデータフォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\AppData\Local\Microsoft\Outlook\*.pst”

if($exist)

{

Write-Output “Start copying the Outlook PST file.”

New-Item “$BFolder\Outlook” -ItemType Directory -Force

Copy-Item “c:\users\$username\AppData\Local\Microsoft\Outlook\*.pst” $BFolder\Outlook -Recurse -force

Write-Output “”

Write-Output “Copy of the Outlook PST file is completed.”

}

# Outlook署名フォルダが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\AppData\Roaming\Microsoft\Signatures”

if($exist)

{

Write-Output “Start copying the Outlook Signatures folder.”

Copy-Item “c:\users\$username\AppData\Roaming\Microsoft\Signatures” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the Outlook Signatures folder is completed.”

Write-Output “”

}

# エクスプローラーのお気に入りがある場合はコピー

$exist = $null

$exist = Test-Path “c:\users\$username\Links”

if($exist)

{

Write-Output “Start copying the Explorer favorites folder.”

Copy-Item “c:\users\$username\Links” $BFolder -Recurse -force

Write-Output “”

Write-Output “Copy of the Explorer favorites folder is completed.”

Write-Output “”

}

# 付箋ファイルが存在する場合にコピー

$exist = $null

$exist = Test-Path “c:\users\$username\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt”

if($exist)

{

Write-Output “Start copying the StickyNotes data.”

New-Item “$BFolder\StickyNotes” -ItemType Directory -Force

& “C:\Program Files\7-Zip\7z.exe” x “C:\users\$username\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt” “-o””$BFolder\StickyNotes”

dir “$BFolder\StickyNotes\*\3” | % {$i = 1} {$new_name = “StickyNotes” + $i.tostring(“000”) + “.txt”; ren $_ $new_name ; $i++}

Write-Output “”

Write-Output “Copy of the StickyNotes data is completed.”

Write-Output “”

}

# OneNote のバックアップデータが存在する場合にコピー

$exist = $onenotefile = $null

$exist = Test-Path “$env:userprofile\AppData\Local\Microsoft\OneNote\15.0\Backup\*”

if($exist)
{
$onenotefile = “$env:userprofile\AppData\Local\Microsoft\OneNote\15.0\Backup\*”
}
else
{
$exist = Test-Path “$env:userprofile\AppData\Local\Microsoft\OneNote\15.0\バックアップ\*”
if($exist)
{
$onenotefile = “$env:userprofile\AppData\Local\Microsoft\OneNote\15.0\バックアップ\*”
}
else
{
$exist = Test-Path “$env:userprofile\AppData\Local\Microsoft\OneNote\14.0\Backup\*”
if($exist)
{
$onenotefile = “$env:userprofile\AppData\Local\Microsoft\OneNote\14.0\Backup\*”
}
else
{
$exist = Test-Path “$env:userprofile\AppData\Local\Microsoft\OneNote\14.0\バックアップ\*”
if($exist)
{
$onenotefile = “$env:userprofile\AppData\Local\Microsoft\OneNote\14.0\バックアップ\*”
}
}
}
}

if($onenotefile -ne $null)
{
Write-Output “Start copying the OneNote Backup file.”

New-Item “$BFolder\OneNote” -ItemType Directory -Force

Copy-Item $onenotefile $BFolder\OneNote -Recurse -force

Write-output “”

Write-output “Copy of the Onenote Backup files has completed”

Write-output “”
}

$Finishmessage = “Data backup has Completed. `nYou may now copy or move the $Bfoldername FOLDER on Desktop to BOX, External HDD or other media.`n`nPlease press OK button to close the window.”
[system.windows.forms.messagebox]::Show(“$Finishmessage”,”System message”)

 

付箋などはWin10からはそのまま使用することはできませんので、Win7での付箋を移動させたい場合はテキストに移行することになります。

 

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

2018年12月
« 11月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  
ページ上部へ戻る