パソコンの準備ってどうやってるの?キッティングについて

医療情報システムキッティング

これから紹介するコマンドはWindows 10を想定しており、管理者権限で実行してください。

Administratorアカウントの有効化

電子カルテシステムのインストールにadministrator権限が必要になるので、最初にadministratorアカウントを有効化します。

net user administrator /active:yes
net user administrator ********(パスワード)

コンピュータ名の変更

PCは初期設定時にランダムな名前が付けられていますが、それでは管理しにくいので規則性を持ったPC名を付けています。

set /p newname="新しいPC名を入力してください:"
echo %newname%に変更します。
wmic computersystem where name="%computername%" call rename name=%newname%

半期チャネルの設定

Windows 10では半期チャネルの設定と言って機能面のアップデートと品質面のアップデートのチェックする期間をそれぞれ延長できるので、それをなるべく回避するために最大限まで延長しています。最新のバージョンでは品質面のアップデートが指定できなくなっているようですが、レジストリの項目はまだ残っているようなので、念のため設定しています。

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings /v DeferFeatureUpdatesPeriodInDays /t REG_DWORD /d 365 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings /v DeferQualityUpdatesPeriodInDays /t REG_DWORD /d 30 /f

(上が機能面のアップデートで、下が品質面のアップデートです。)

Windowsの機能の有効化・無効化

Windows 10ではバージョンごとに機能の有効化・無効化が変わっていて、バージョンごとに必要な機能を目視で確認しています。(バージョンごとの自動化がまだできていないので、ここは目視&手動です)

REM #まずWindowsのバージョンを確認して、
winver
REM #バージョンごとに必要・不要な機能を設定する
OptionalFeatures.exe

IPアドレスを設定

次にIPアドレスの設定です。前述で述べた通り固定IPで割り振っているので、最初に設定したいIPを入力します。そのIPから各種サブネットマスクやゲートウェイ、共通で設定しているDNSやWINSサーバーを設定します。 最後にDNSサフィックスを指定しています。

set /p setip="IP addr :"
ECHO %setip%で設定します。
netsh interface ipv4 set address name="ローカル エリア接続" source=static addr="%setip%" mask="255.255.255.0" gateway="%setip:~ 0,9%.254"
netsh interface ipv4 set dns name="ローカル エリア接続" source=static address=xx.xxx.xx.xx register=primary validate=no
netsh interface ipv4 add dns name="ローカル エリア接続" address=xx.xxx.xx.xx index=2 validate=no
netsh interface ipv4 add dns name="ローカル エリア接続" address=xx.xx.xx.xx index=3 validate=no
netsh interface ipv4 add dns name="ローカル エリア接続" address=xx.xx.xx.xx index=4 validate=no
netsh interface ipv4 set wins name="ローカル エリア接続" source=static addr="xx.xx.xx.xx"
netsh interface ipv4 add wins name="ローカル エリア接続" addr="xx.xx.xx.xx"

reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "SearchList" /t REG_SZ /d "xxx.jp,yyy.jp,zzz.local" /f

ちなみにDHCPで運用している場合のIP設定は下記のようになります。

netsh interface ip set address "ローカル エリア接続" dhcp
netsh interface ip set dns "ローカル エリア接続" dhcp

ドメインに参加

最後にドメイン参加です。ここまで設定できたら院内のドメインサーバーと通信できる状態になっているので、ドメイン認証を行います。 自身のコンピュータ名とドメインサーバーのユーザ名とパスワードを使って認証を試みます。 その結果Logファイルが出来るので、ログファイルの中身を読み取ってドメイン参加できたかどうか判断しています。

SET BAT_LOG=%COMPUTERNAME%.log
wmic ComputerSystem WHERE "name='%COMPUTERNAME%'" CALL JoinDomainOrWorkgroup Name="xxx.jp" Password="xxxxxxxx" Username="xxxxxxxx" FJoinOptions=3 > %BAT_LOG%
REM ドメイン参加が成功したかログを確認します。
find /i "ReturnValue = 0" %BAT_LOG%

REM ドメイン参加の状況によって処理を分岐させます。
IF "%ERRORLEVEL%" == "0" (
echo ドメイン参加完了しました。
echo 再起動します。
pause
shutdown /r /t 60
EXIT
) else (
echo ドメイン参加に失敗しました。
echo 処理を中断します。
Pause
EXIT
)

まとめ

結構面倒な作業が多いキッティングですが、ある程度簡略させることができました。今回はIPアドレス設定からドメイン参加までの自動化でしたが、他にも自動化できそうな箇所があるので、今後はそこも自動化できないか検討したいと思います。もし自動化することができたら、またこのブログでご紹介したいと思います。 また、別の方法で自動化している方がいらっしゃれば是非ご教授のほどよろしくお願いいたします。