Windows Server 2012 / Windows 8 の Power Shell 3.0 は、大幅に進化しており netsh とか、WMI を使わず、大半を PowerShell のコマンドレットで仮想マシンの作成や、仮想マシンそのもの設定が可能です。
Sysprep してあるベース VHDX から、差分ディスクで Windows Server 2012 の仮想マシンを作成し、IPv4 / IPv6、コンピューター名の設定、ライセンス登録、ドメイン参加をするシナリオで、これらを解説しましょう。
< 例で使用する環境 >
● ベースとなる VHDX(sysprep済み)
F:\Hyper-V\VHD\BaseWS12.VHDX
● 仮想マシン名
TestVM01
● 作成する仮想マシン置き場
F:\Hyper-V\TestVM01\
TestVM01.VHDX
● 使用する仮想SW
LAN
まずは、仮想マシンの作成です。
仮想マシン作成テンプレート
# 仮想マシン置き場作成 |
仮想マシン作成例(要管理権限)
# 仮想マシン置き場作成 |
仮想マシンが起動したら、仮想マシンのセットアップをします。
自動応答を仕込んでいない場合は、仮想マシンの GUI 入力が必要なので、「vmconnect」で仮想マシンの GUI に接続し、必要な入力をします。
続いて、仮想マシンの Power Shell で、IPアドレスとコンピューター名の設定します。
仮想マシンのIPアドレス、コンピューター名設定テンプレート
# RA による IPv6 アドレス自動構成停止 Set-NetIPInterface -RouterDiscovery Disabled # IPv6 アドレス設定(/64) Get-NetAdapter | New-NetIPAddress -AddressFamily IPv6 -IPAddress [IPv6 GUA アドレス] -PrefixLength 64 Get-NetAdapter | New-NetIPAddress -AddressFamily IPv6 -IPAddress [IPv6 ULA アドレス] -PrefixLength 64 # IPv6 デフォルトゲートウェイ(fe80::1)設定 Get-NetAdapter | New-NetRoute -AddressFamily IPv6 -DestinationPrefix ::/0 -NextHop fe80::1 # IPv6 参照 DNS 設定 Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses [参照DNS-1],[参照DNS-2],[参照DNS-3],[参照DNS-4] # IPv4 アドレス(/24)/デフォルトゲートウェイ設定 Get-NetAdapter | New-NetIPAddress -AddressFamily IPv4 -IPAddress [IPv4 アドレス] -PrefixLength 24 -DefaultGateway [デフォルトゲートウェイ] # IPv4 参照 DNS 設定 Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses [参照DNS-1],[参照DNS-2] # コンピューター名設定 Rename-Computer [コンピューター名] -Restart -Force |
仮想マシンのIPアドレス、コンピューター名設定例(要管理権限)
# RA による IPv6 アドレス自動構成停止 Set-NetIPInterface -RouterDiscovery Disabled # IPv6 アドレス設定(/64) Get-NetAdapter | New-NetIPAddress -AddressFamily IPv6 -IPAddress 2001:db8:400::d01 -PrefixLength 64 Get-NetAdapter | New-NetIPAddress -AddressFamily IPv6 -IPAddress fd43:6338:75ac::d01 -PrefixLength 64 # IPv6 デフォルトゲートウェイ(fe80::1)設定 Get-NetAdapter | New-NetRoute -AddressFamily IPv6 -DestinationPrefix ::/0 -NextHop fe80::1 # IPv6 参照 DNS 設定 Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses fd43:6338:75ac::ad01,fd43:6338:75ac::ad02,2001:db8:400::ad01,2001:db8:400::ad02 # IPv4 アドレス(/24)/デフォルトゲートウェイ設定 Get-NetAdapter | New-NetIPAddress -AddressFamily IPv4 -IPAddress 192.168.0.10 -PrefixLength 24 -DefaultGateway 192.168.0.254 # IPv4 参照 DNS 設定 Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses 192.168.0.1,192.168.0.2 # コンピューター名設定 Rename-Computer DHCP01 -Restart -Force |
仕上げは、プロダクト ID のアクティベーションと、ドメイン参加です。
ドメイン参加は、対話認証となるため、スクリプトで完全自動化にはならない様です。
ライセンス登録とドメイン参加設定テンプレート
# ライセンス登録 slmgr /ipk [PID] # ドメイン参加 Add-Computer -DomainName [ドメイン名] -Force -Restart |
ライセンス登録とドメイン参加設定例(要管理権限)
# ライセンス登録 slmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx # ドメイン参加 Add-Computer -DomainName contoso.com -Force -Restart |
Windows Update 等の設定は、コマンドラインだと難しいので、「sconfig」で対話的に設定するのが無難でしょう。
仮想マシン作成、仮想マシンのIPアドレス、コンピューター名設定は、PowerShellのスクリプト(.PS1)に書いて実行するのが効率的です。
スクリプトの実行は、デフォルト禁止になっているので、管理者権限で PowerShell を起動し、「Set-ExecutionPolicy RemoteSigned -Force」で実行許可を与える必要があります。
PowerShell スクリプト実行許可(要管理権限)
# スクリプト実行許可 Set-ExecutionPolicy RemoteSigned -Force |
仮想マシン用の PowerShell スクリプトは、スクリプトを格納した VHDX を準備し、仮想マシンの SCSI デバイスにマウントするのがお勧めです。
VHDXのSCSIマウント
Add-VMHardDiskDrive -VMName [仮想マシン名] -ControllerType SCSI -Path [VHDXの場所] |
参考までに、NIC に VID をセットする場合は、「Set-VMNetworkAdapterVlan –VMName [仮想マシン名] –Access –VlanId [VID]」でセットします。
Copyright © MURA All rights reserved.