WindowsPCを大量にキッティングすることになったため、組み上げたスクリプトになります。
スクリプト内容は以下の通りです。
Ver1.1β
Windowsライセンスユーザと組織名の登録もついでにできるようにした
1.コンピュータ名の登録
2.IPアドレス(IPv4)の設定
3.DNSの設定
4.Windowsライセンスユーザと組織名の登録
5.設定したログの取得
①ネットワークアダプタ設定の取得
②MACアドレスの取得
6.再起動
WindowsSetupScript.bat
@echo off
REM ===========================================================
REM 制作日:2021.03.28
REM 製作者:海里
REM バージョン:1.1β
REM Windowsキッティング用スクリプト
REM WindowsPC設定bat
REM ===========================================================
REM 変数========================================================
REM コンピュータ情報
set PCName="ComputerName001"
REM ネットワーク情報
set IPAddress="xxx.xxx.xxx.xxx"
set SubnetMask="xxx.xxx.xxx.xxx"
set DefaultGateway="xxx.xxx.xxx.xxx"
REM DNS情報
set DNS1="xxx.xxx.xxx.xxx"
set DNS2="xxx.xxx.xxx.xxx"
REM === Windowsライセンスユーザ情報 ===
set RegPath="HKLM\Software\Microsoft\Windows NT\CurrentVersion"
set RegOrga="WindowsUser"
set RegOwnr="WindowsUser"
REM === ログ保存先情報 ===
set LogFileName="SetupComputer.log"
set LogSavePath="C:\"
REM ===========================================================
set Log=%LogSavePath%%LogFileName%
REM 開始日時情報の取得(タイムスタンプ)
REM 日付情報の取得
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
REM 時刻の取得
set hr=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%
echo "開始日時" >> %Log%
echo %year%.%month%.%day% >> %Log%
echo %hr%:%min%:%sec% >> %Log%
REM コンピュータ名の設定
wmic computersystem where name="%COMPUTERNAME%" call rename name=%PCName% >> %Log%
REM ネットワークアダプタの設定
netsh interface ip set address "イーサネット" static %IPAddress% %SubnetMask% %DefaultGateway% >> %Log%
REM プライマリDNSの設定
netsh interface ip set dns "イーサネット" static %DNS1% primary no >> %Log%
REM セカンダリDNSの設定
netsh interface ip add dns "イーサネット" %DNS2% >> %Log%
netsh interface ip show config "イーサネット" >> %Log%
getmac >> %Log%
getmac /v /fo list >> %Log%
REM Windowsライセンスユーザの登録
reg add %RegPath% /v RegisterdOrganization /t REG_SZ /d %RegOrga% /f
reg add %RegPath% /v RegisterdOwner /t REG_SZ /d %RegOwnr% /f
REM 終了日時情報の取得(タイムスタンプ)
REM 日付情報の取得
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
REM 時刻の取得
set hr=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%
echo "終了日時" >> %Log%
echo %year%.%month%.%day% >> %Log%
echo %hr%:%min%:%sec% >> %Log%
REM 再起動処理
shutdown /r /t 3
exit
Ver1.0β
1.コンピュータ名の登録
2.IPアドレス(IPv4)の設定
3.DNSの設定
4.設定したログの取得
①ネットワークアダプタ設定の取得
②MACアドレスの取得
5.再起動
WindowsSetupScript.bat
@echo off
REM ===========================================================
REM 制作日:2021.03.28
REM 製作者:海里
REM バージョン:1.0β
REM Windowsキッティング用スクリプト
REM WindowsPC設定bat
REM ===========================================================
REM 変数========================================================
REM コンピュータ情報
set PCName="ComputerName001"
REM ネットワーク情報
set IPAddress="xxx.xxx.xxx.xxx"
set SubnetMask="xxx.xxx.xxx.xxx"
set DefaultGateway="xxx.xxx.xxx.xxx"
REM DNS情報
set DNS1="xxx.xxx.xxx.xxx"
set DNS2="xxx.xxx.xxx.xxx"
REM === ログ保存先情報 ===
set LogFileName="SetupComputer.log"
set LogSavePath="C:\"
REM ===========================================================
set Log=%LogSavePath%%LogFileName%
REM 開始日時情報の取得(タイムスタンプ)
REM 日付情報の取得
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
REM 時刻の取得
set hr=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%
echo "開始日時" >> %Log%
echo %year%.%month%.%day% >> %Log%
echo %hr%:%min%:%sec% >> %Log%
REM コンピュータ名の設定
wmic computersystem where name="%COMPUTERNAME%" call rename name=%PCName% >> %Log%
REM ネットワークアダプタの設定
netsh interface ip set address "イーサネット" static %IPAddress% %SubnetMask% %DefaultGateway% >> %Log%
REM プライマリDNSの設定
netsh interface ip set dns "イーサネット" static %DNS1% primary no >> %Log%
REM セカンダリDNSの設定
netsh interface ip add dns "イーサネット" %DNS2% >> %Log%
netsh interface ip show config "イーサネット" >> %Log%
getmac >> %Log%
getmac /v /fo list >> %Log%
REM 終了日時情報の取得(タイムスタンプ)
REM 日付情報の取得
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
REM 時刻の取得
set hr=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%
echo "終了日時" >> %Log%
echo %year%.%month%.%day% >> %Log%
echo %hr%:%min%:%sec% >> %Log%
REM 再起動処理
shutdown /r /t 3
exit
set関数で変数を設定しているので端末単位で情報を変数に入れれば、
手間のかかるGUI操作をしなくて済みます。
PCキッティング等、システム運用者であれば扱いやすいスクリプトかと思います。
Windows系であればサーバの構築にも使えると思います。