始めに
この記事ではPCのデータ移行をする際に必要な設定情報の移行をバッチファイルで行う方法を記載しているよ。
レジストリファイルを書き換えるコマンドがあるから、よい子のみんなはPCに詳しい大人と一緒にやってみてね。
管理者として実行
レジストリをエクスポート、実行する際に管理者権限が求められることがあるよ。
毎回管理者権限でバッチファイルを実行してもらうより、バッチファイル上で勝手に管理者として実行してもらうほうが便利だね。
rem #管理者でないなら管理者モードで自身を実行
openfiles > nul 2>&1
if errorlevel 1 (
echo #-----------------------------------------------------------
echo #▼管理者へsuさせる
echo #-----------------------------------------------------------
PowerShell.exe -Command Start-Process ""%0"" -Verb runas
exit
)
旧PCで実行するコマンド
ユーザーアカウント制御を通知しないに変更
管理共有できるようになるよ。
echo 【UACを切る】
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t "REG_DWORD" /d "0" /f
設定データを保存するためのフォルダを作成
echo C直下に移行ツールフォルダを作成する
md %HOMEDRIVE%\移行ツール
md %HOMEDRIVE%\移行ツール\Backup
コンピュータの情報を取得
以下の変数を使用するよ
set B=%HOMEDRIVE%\移行ツール\Backup
echo ユーザー名取得
echo %username% > "%B%\username.txt"
echo コンピュータ名取得
echo %computername% > "%B%\computername.txt"
echo ネットワーク設定を取得
echo ipconfig /all > "%B%\IPaddress.txt"
今回はテキストに出力しているよ。
PC名をレジストリで取得したい場合は以下にあるよ。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
インターネットオプションの設定情報を取得
echo ie互換表示
reg export "HKCU\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData" "%B%\IE互換表示設定.reg" /y
echo 信頼済みサイト
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap" "%B%\ZoneMap.reg" /y
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones" "%B%\Zones.reg" /y
echo ポップアップブロック
reg export "HKCU\Software\Microsoft\Internet Explorer\New Windows\Allow"
echo ieスタートページ
FOR /F "TOKENS=4" %%I IN ('REG QUERY "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page"') DO SET VAL1=%%I
echo %VAL1% > "%B%\StartPage.txt"
Outlookの設定情報の取得
メールサーバーのパスワード以外の設定情報を取得するよ。
事前にパスワードは取得しておこう。
echo Outlook情報の取得
reg export "HKCU\Software\Microsoft\Office\16.0\Outlook\Profiles\Outlook" "%B%\MailInfo.reg" /y
Outlookのバージョンによってレジストリの場所が異なるよ
以下表を参考に、コマンドを変えてみよう!
Outlook | レジストリキー |
---|---|
Outlook 2010 | HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook |
Outlook 2013 | HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\Outlook |
Outlook 2016 | HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Profiles\Outlook |
Outlook for Office365 | HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Profiles\Outlook |
ネットワークと共有センターを表示する
ネットワーク共有の設定やパスワード保護の設定を変更しよう。
管理共有を行わない場合は必要ないよ。
echo NW共有センターを開く
control.exe /name Microsoft.NetworkAndSharingCenter /page Advanced
再起動
ユーザーアカウント制御を変更する際は必須だよ。
再起動する必要が無い場合は無視してね。
echo 【直ちに再起動】
shutdown /F /R /T 0
新PCで実行するコマンド
移行フォルダの作成
ここでも移行フォルダのパスを変数に使うよ。
set B=%HOMEDRIVE%\移行ツール\Backup
md %B%
設定データ移行
コマンドプロンプト上に対象のユーザー名、IPアドレスを入力しようね。
set /p name=旧PCのユーザー名を入力してください:
echo %name% >%B%\oldname.txt
set /p oldIP=旧PCのIPアドレスを入力してください:
echo %oldIP% >%B%\oldIP.txt
start \\%oldIP%\c$
echo 旧PCのIPアドレスをセットする
for /f %%a in (%B%\oldIP.txt) do (
set oldIP=%%a
)
echo 移行ツールの移行
robocopy.exe "\\%oldIP%\c$\移行ツール" "%HOMEDRIVE%\移行ツール" *.* /E /MOVE /R:0 /W:0
echo ;
echo ;
echo ----------移行したregファイルを新PCで実行する-----------
echo IE互換表示設定
start %B%\IE互換表示設定.reg
echo 信頼済みサイト設定
start %B%\ZoneMap.reg
start %B%\Zones.reg
echo Outlook情報の取得
start %B%\MailInfo.reg
echo ;
echo ;
echo -----------IEのスタートページを引き継ぐ-----------
echo IEのスタートページを移行する
for /f %%b in (%B%\startpage.txt) do (
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d %%b /f
)
pause
exit