Windowsのバッチファイルでコンピュータ名設定とドメイン参加とMAKライセンス認証を自動化するようにしてみた

スクリプトというものは意外といろいろできるもので、自動化処理の代表としてバッチファイルはよく使われていました。 今回はそのバッチファイルを使って、以下のものを自動化したという記録です。

  • コンピュータ名設定
  • ドメイン参加
  • MAKライセンス認証(Windows・Office)

あまり家のPCだと活用がないと思いますが、なんかの時に参考になるかもしれません。

参考サイト

なお、これらのコマンドを実行するには、コマンドプロンプトのアイコンを右クリックして「管理者として実行」する必要があります。PowerShellでは正常に動かないことがあるので使わないようにしましょう。

コンピュータ名の変更

wmic computersystem where name=“%computername%” call rename name=“設定したいPC名” 

大体の設定変更はwmicコマンドで行うことができます。 「%computername%」は現在のコンピュータ名を示す定数で、最初にこの記述を入れておかないと「無効なメソッドのパラメーターです」というエラーが出てしまいます。

設定後はすぐに反映されないので、一度PCを再起動しなければいけません。再起動せずに反映する方法が分かりませんでした。

ドメインの参加

wmic computersystem where name=“%computername%” call joindomainorworkgroup name=“ドメイン名” password=“ドメイン管理用パスワード” username=“ドメイン管理用ユーザ名” fjoinoptions=3 

これもwmicコマンドでできます。コンピュータの管理からドメイン参加の処理をすると数回ユーザ名とパスワードを入れないといけないので面倒ですが、これなら1回で済みます。 最後の「fjoinoptions=3」はおまじないだと思ってください。 実行後、「ReturnValue = 0」が出れば成功です。

Windows、OfficeのMAKライセンス認証

WindowsとOfficeのライセンス認証には同じような認証用スクリプトが用意されており、それを実行するだけで処理が完了します。VolumeLicenseやSchoolAgreementのMAKライセンスによる実験しかしてないので、通常の認証で有効かどうかはわかりません。

Windowsプロダクトキーの設定

cscript “C:¥windows¥system32¥slmgr.vbs” /ipk プロダクトキー 

「プロダクト キー WWWWW-WWWWW-WWWWW-WWWWW-WWWWW を正常にインストールしました。」と出れば成功です。

Windowsプロダクトキーの認証

cscript “c:¥windows¥system32¥slmgr.vbs” /ato 

「製品は正常にライセンス認証されました。」と出れば成功です。

Officeプロダクトキーの設定

cscript “c:¥program files¥microsoft office¥office15¥ospp.vbs” /inpkey:プロダクトキー 

「Product key installation successful」と出れば成功です。

Officeプロダクトキーの認証

cscript “c:¥program files¥microsoft office¥office15¥ospp.vbs” /act 

「Product activation successful」と出れば成功です。 「Office15」の所はOffice2013の場合です。Office2010の場合は「Office14」にする必要があります。

一部対話型を交えた一括処理バッチファイルを作成

これら一連のコマンドを羅列して.batファイルを作り、管理者として実行すれば一括処理できます。しかし、複数PCがあってそれぞれコンピュータ名が違う場合、いちいちバッチファイルを開いてコンピュータ名の記述部分を変更というのは手間でしかないので、バッチファイル実行時にコンピュータ名を入力する対話型にしようと思います。

@echo off

rem —— 環境変数の設定 ——
rem ドメイン参加用管理者情報
set DOMAIN_NAME=ドメイン名
set DOMAIN_USERNAME=ドメイン管理者ユーザ名
set DOMAIN_PASSWORD=ドメイン管理者パスワード

rem Windows MAKプロダクトキー
set PRODUCTKEY_WINDOWS=WWWWW-WWWWW-WWWWW-WWWWW-WWWWW

rem Office MAKプロダクトキー
set PRODUCTKEY_OFFICE=OOOOO-OOOOO-OOOOO-OOOOO-OOOOO

rem Officeのバージョン(2010=office14、2013=office15)
set OFFICE_VER=office15

echo 変更したいコンピュータ名を入力してください
echo 空欄でEnterを押すと%computername%でドメイン登録を行います。
set /p MYPCNAME=
if “%MYPCNAME%” neq “” (
echo コンピュータ名を%MYPCNAME%に変更しています…
wmic computersystem where name=“%computername%” call rename name=“%MYPCNAME%”
echo コンピュータ名の変更が完了しました。
echo 何かキーを押すと再起動します。
pause > nul
shutdown /f /r /t 0
exit
) else (
echo %computername%でドメイン登録を行います。
wmic computername where name!=null call joindomainorworkgroup name=“%DOMAIN_NAME%” password=“%DOMAIN_PASSWORD%” username=“%DOMAIN_USERNAME%” fjoinoptions=3
echo ドメイン登録が完了しました。
)

echo Windows MAKプロダクトキーを設定しています…
cscript “C:¥windows¥system32¥slmgr.vbs” /ipk %PRODUCTKEY_WINDOWS%
cscript “c:¥windows¥system32¥slmgr.vbs” /ato

echo Office MAKプロダクトキーを設定しています…
cscript “c:¥program files¥microsoft office¥%OFFICE_VER%¥ospp.vbs” /inpkey:%PRODUCTKEY_OFFICE%
cscript “c:¥program files¥microsoft office¥office15¥ospp.vbs” /act
echo 全ての作業が完了しました。何かキーを押すと再起動します。

pause > nul
shutdown /f /r /t 0
exit

このコードをコピペするとダブルクォートとかEUCとShift-JIS文字コードの違いでうまく動かない可能性があります。ちゃんと打ったほうがいいでしょう。 中間停止のコードがないのでどんどん進んでしまいますが、Ctrl+Cで停止ができます。

最初の起動でコンピュータ名の入力が促され、入力するとコンピュータ名を変更して再起動し、入力がないとドメイン登録とライセンス認証に行くという流れです。 一応これで動作確認とれてます。 コンピュータ名を再起動無しで反映できたら言うことなしなんですけどねぇ…

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中