1
1

Windows PCの設定を可能な限り自動化するバッチ

Posted at

始めに

この記事では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

image.png

設定データを保存するためのフォルダを作成

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"

image.png

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
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1