Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
この投稿は PowerShell Advent Calendar 2013 に参加しています。
※投稿遅れてごめんなさい!!!!
https://technet.microsoft.com/ja-jp/windowsserver/jj649374.aspx
Windows PowerShell を使用すれば、Windows Server 上にインストールするサービスの構成も自動化することができます。
ただ、その中でちょっと面倒なのが DHCP サーバーです。
サーバーマネージャーで DHCPサーバーをインストールし、DHCPマネージャーで構成するには、以下の手順が必要です。
DHCP サーバーをインストールする
サーバーマネージャー上にフラグた立つので、「DHCP 構成を完了する」を実行
- DHCP サーバー管理の委任用にセキュリティグループ(DHCP Administrators、DHCP Users)を作成する
- DHCP サーバーをActive Directory で承認する
DHCP サービスのバインディングを設定する
スコープを構成する
これらをWindows PowerShell に置き換えると以下のようになります。
Add-WindowsFeature dhcp -IncludeManagementTools -IncludeAllSubFeature
「DHCP 構成を完了する」というコマンドレットが用意されていないので、以下のコマンドを実行します。
Netsh dhcp add SecurityGroups
残念ながら、Netsh dhcp add SecurityGroup に相当するコマンドレットが存在せず、ここだけはDOSコマンドを使うことになります(少し悔しい)。または、New-ADGroup コマンドレットを使用して、ここにセキュリティグループを作ってあげるという手もありますが….
Add-DHCPServerInDC -DnsName <DNSドメイン名>
DNS ドメイン名には contoso.com のような文字列を指定します。
Set-DHCPServerV4Binding -InterfaceAlias “NIC の名前” -BindingState $True
-InterfaceName に指定するのは DHCP サーバーをバインドするネットワークカードの名前です。名前を調べるには、Get-NetAdapter コマンドレットで表示される Name プロパティを確認してください。
このコマンドレットでは IPv4 アドレスをリースするための設定をしていますが、Set-DhcpServerv6Binding コマンドレットを使用すれば IPv6 用の設定も行えます。
スコープを構成するには 2つのコマンドレットを実行しなければなりません
はじめに、スコープのレンジを設定します。このとき、-State でスコープをアクティブにすることができますが、このままでは設定が足りないため中途半端にリースされる可能性があります。よって、作成時には -State を InActive としましょう。
Add-DHCPServerV4Scope -StartRange 192.168.0.10 -EndRange 192.168.0.20 -SubnetMask 255.255.255.0 -Name “スコープ1” -State InActive
スコープを作成すると、ScopeID という一意のIDが割り振られます。ScopeID を確認するには、以下のコマンドレットを使用します。
Get-DHCPServerV4Scope
ScopeID がわかったら、今度はスコープに DNS サーバー の設定を追加します。
Set-DhcpServerV4OptionValue -ScopeID 192.168.0.0 -DnsServer 192.168.0.1
このとき、DNS サーバーの有効性がチェックされます。もし DNS サーバーがまだ存在していない場合等には、 -Force オプションを使用して設定を強制することもできます。
最後に、以下のようにスコープの State を Active に変更し、アドレスのリースを行えるようにします。
Set-DhcpServerv4Scope -ScopeID 192.168.0.0 -State Active
以上で設定は完了なのですが、Windows PowerShell から構成を行った場合、ちょっとした問題が出ることがあります。それが、以下です。
そうなのです。こいつが消えてくれないことがあるのです。害はありませんが、ちょっと鬱陶しいですね。。。
そこで、対応が完了しているフラグがどうしても消えない場合には、以下のようなコマンドを最後に実行しましょう。
Set-ItemProperty –Path registry::HKLM\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2
「HKLM\SOFTWARE\Microsoft\ServerManager\Roles」配下には、サーバーにインストールされている役割が列挙されており、その直下の数字が各役割の管理番号になっているようです。つまり、「12」というのはDHCP サーバーを示しています。ConfigurationState = 2 が「構成完了」を意味しています。