何でも屋Server Core を理解する

Greg Shields

目次

Windows Server 2008 MS-DOS Edition
カンニング ペーパー
Core の管理

IT 出版物では、どんな仕事でも引き受ける、いわゆる何でも屋の IT プロフェッショナルが必要とする内容にはほとんど触れられていません。最新テクノロジや興味を引く事柄について詳しく説明している書籍や記事では、小規模環境を担当する IT プロフェッショナルのニーズが満たされないことがよくあります。こういった IT プロフェッショナルの方、最終的にコンピューティング環境全般に責任を負う方、ネットワーク ルーティングやサーバー管理からプリンタのトナー カートリッジの交換に至るまで、あらゆる管理を行っている方に、

このコラムをささげます。私 Greg Shields はこの 15 年間、大規模 IT 環境でも小規模 IT 環境でも作業をしてきましたが、ここ数年は今までの経験を活かして執筆活動に専念しています。この TechNet Magazine で毎月、実際に役立つ最高のヒントとテクニックをご紹介できることをとてもうれしく思います。特に専門分野を持たない皆さんが、すぐに実装して小規模 IT 環境を改善できるヒントとテクニックをご紹介します。

ここで "小規模企業" と明言していないことにお気付きでしょう。現在の小規模企業の IT プロフェッショナルは何でも屋の典型ですが、はるかに大規模な組織であっても、その一部の管理を何でも担当している人々もいます。たとえあらゆることを任されたとしても、"やり遂げるだけ" という仕事観を持っている人は多いものです。このコラムでは仕事をやり遂げる方法を具体的に説明します。そして、皆さんが毎晩定時に帰宅できるようになればと思っています。

まず、第 1 回目のコラムでは、皆さんがまだ注目していない Windows Server の新しい形態について説明します。Windows Server 2008 の Server Core は、新しく追加された魅力的な機能で、小規模コンピューティング環境に役立ちます。このコラムでは、Server Core が小規模コンピューティング環境に役立つ理由、および Server Core が最適な状況について説明します。また、Windows Server 2008 で最初の Server Core インスタンスをセットアップする手順についても説明します。

Windows Server 2008 MS-DOS Edition

MSDN Web サイトでは、Server Core について、「Windows Server 2008 オペレーティング システムを実行するコンピュータの最小サーバー インストール オプションです。限定的な機能を備え、メンテナンスの必要性が少ないサーバー環境を提供します」と述べられています。簡単に言うと、Server Core は Windows Server 2008 の 1 つのインストール オプションで、Windows Server 2008 オペレーティング システムから大量の機能を取り除いたものです。エクスプローラ シェルやInternet Explorer はなく、マネージ コードもサポートされません。

Server Core は、マイクロソフトが Windows Server 2008 の開発時に行ったいくつかのコンポーネント化作業の 1 つの成果です。大まかに言うと、このコンポーネント化作業では Windows Server のコード ベースを調べ、そのコード ベースを相互接続される論理グループに分類しました。そのため、マイクロソフトは Windows Server を構成するコンポーネント、およびコンポーネント間のインターフェイスについて詳しく把握し、安全に取り除くことができるコンポーネントをより適切に決定できるようになりました。

Windows の機能を必要最低限まで取り除き、Windows グラフィカル ユーザー インターフェイスをほぼすべて削除すると、攻撃対象となる領域やハードウェア リソースの要件が減少したコンパクトな OS になります。このようにハードウェア要件を少なくすると、パフォーマンスの低いサーバーにも Server Core をインストールできます。Server Core を使用すると、廃棄するつもりだった古いハードウェアを引き続き使用することができます。

既に説明したように、この不要な機能が取り除かれた OS では、サーバーのコンソールでそのサーバーを管理する際に使用するほぼすべてのグラフィカル ツールが削除されています。あらゆる点から、Server Core は (冗談めかして) Windows Server 2008 MS-DOS Edition と考えることができます。ですから、お使いの環境で Server Core を使用する場合は、古いコマンド プロンプトのスキルを確認し、長年使っていなかったテキスト コマンドについて学習し直す必要があります。

これは、一部の IT プロフェッショナルにとって悪い知らせですが、最初の再習得過程を終えてしまえば、環境内にある他の "実際の" Windows サーバーを管理する際にすぐに利用できるコマンド ライン技術が身に付きます。このことは、ほとんど例外なく当てはまります。というのも、Server Core インスタンスの管理に使用するすべてのコマンドは、完全な Windows Server で使用しても同じ作業を行うことができるからです。コマンド ラインでの管理が増えると、スクリプトやバッチ ファイルも増えます。そのため、皆さんは問題を解決し、より迅速かつ信頼性の高い方法で環境を管理できるようになります。

それでも Server Core のコマンド ライン要件が気になる方に朗報です。ほとんどのコマンド ライン構成はサーバーの初回構築時に行います。サーバーを構築して、ネットワークとドメインに接続した後は、他のサーバーで使用するような通常の管理コンソールを使用します。

カンニング ペーパー

ここからは、皆さんが Server Core を初めてインストールするお手伝いをします。この処理には、サーバーを運用できるようにするために、最初のインストール後にコマンド プロンプトから実行する必要があるすべてのコマンドが含まれます。

Server Core は Windows Server 2008 の独立したエディションとして提供されるのではなく、インストール オプションとして提供されます。つまり、購入する Windows Server のエディション (Standard、Enterprise、または Datacenter) に関係なく、完全版または Server Core 版のいずれかとして Windows Server をインストールできるオプションが提供されます。これらのオプションは、対象サーバーのドライブにインストール DVD を挿入して、コンピュータを起動すると表示されます。

最初にインストールに関するいくつかの質問に回答すると、図 1 のような画面が表示されます。この画面では、選択したエディションのインストール オプションを選択できます。ここでは、Server Core インストール オプションを指定して Windows Server 2008 Standard Edition をインストールします。WinPE のプレインストールに関する質問に回答して、インストールを開始します。

fig01.gif

図 1 インストール オプションである Server Core

インストール ルーチンが完了したら、空白のパスワードで管理者としてログインします。すぐにパスワードの変更を求められます。パスワードを変更したら、ログインされ、Server Core の必要最低限のユーザー インターフェイスが表示されます。図 2 は、Server Core インスタンスの簡素なコンソールを示しています。

fig02.gif

図 2 コマンド プロンプトと大差ない Server Core のインターフェイス

Server Core インスタンスが新しくインストールされます。あらかじめ構成が必要な設定はありません。そのインスタンスをネットワークとドメインに接続して仕事の準備をするには、コマンド プロンプトを使用して一連の構成を実行する必要があります。これは面倒な作業のように思われるかもしれませんが、以下に示すカンニング ペーパーを自由に使って初期構成を行ってください。

コンピュータの名前を変更する お使いのコンピュータにランダムな名前が付いている場合があります。次のコマンドを使用してその名前を変更します。

netdom renamecomputer %computername%
  /newname:{newComputerName} 

名前の変更後、コンピュータを再起動する必要があります。これを行うには、次のコマンドを使用します。

shutdown /r /f /t 0

静的 IP アドレス、サブネット マスク、および既定のゲートウェイを設定する サーバーで DHCP を使用する場合は、この手順を無視してください。静的 IP アドレスを設定し、サーバーの既定のゲートウェイを構成するには、次のコマンドを使用します。

netsh interface ipv4 set address {interfaceName} static
  {ipAddress} {subnetMask} {defaultGateway}

ほとんどのサーバーでは、{interfaceName} の値を "ローカル エリア接続" に設定します。次のコマンドを使用すると、最初にこの名前を確認できます。

netsh interface show interface

DNS サーバーを設定する サーバーの DNS サーバー アドレスを設定して、ネットワーク構成を完了します。この処理は、次のコマンドを使用して行います。

netsh interface ipv4 add dnsserver name={interfaceName}
  address={dnsServerIpAddress} index=1

ドメインに参加する コンピュータの名前とネットワークを設定したら、次のコマンドを使用してコンピュータをドメインに参加させます。

netdom join {computerName} /domain:{domainName}
  /userD:{domainUsername} /passwordD:{domainPassword}

この処理の完了後、コンピュータをもう一度再起動する必要があることに注意してください。

プロキシ サーバーを構成する 組織でプロキシ サーバーを使用してインターネットに接続している場合、次のコマンドを使用してプロキシ サーバーの構成を設定します。

netsh winhttp set proxy {proxyServerName}:{proxyPortNumber}

Server Core では Web ブラウザを実行できませんが、プロキシを使用する環境で、自動更新を使用してインターネットから更新プログラムをダウンロードする場合は、この設定を構成する必要があります。

ライセンス キーを追加してライセンス認証手続きを行う Server Core にはサーバー マネージャが導入されていないので、コマンド ラインを使用してサーバーのライセンス認証手続きを行います。次のコマンドを使用して、サーバーのライセンス キーを入力します。

slmgr –ipk {licenseKey}

ライセンス キーの文字列は、ハイフンで区切ることができます。次のコマンドを使用してライセンス認証手続きを行います。

slmgr –ato

これらのコマンドを入力した後しばらく時間がかかることがありますが、結果を示すポップアップ ウィンドウが表示されるまで待機してください。

自動更新を構成する 自動更新は、コマンド ラインまたはグループ ポリシーを使用して構成できます。通常、Server Core インスタンスと残りの環境を構成するには、グループ ポリシーを使用する方が簡単です。ただし、ダウンロードやインストール前に通知するように、自動更新のグループ ポリシー構成を設定すると、Server Core ではグループ ポリシーが機能しません。

Server Core にはエクスプローラ シェルがないため、自動更新で使用されるバルーン通知が機能しません。ただし、次のように、C:\Windows\System32 にある scregedit.wsf スクリプトを使用して、毎日午前 3 時に更新プログラムをダウンロードしてインストールするように自動更新を設定できます。

Cscript c:\windows\system32\scregedit.wsf /au 4

セキュリティが強化された Windows ファイアウォールを管理する 自動更新と同様に、セキュリティが強化された Windows ファイアウォールの管理にもグループ ポリシーが最適です。ただし、スタンドアロン インスタンスでは次のコマンドを使用して、ファイアウォールを有効または無効にすることができます。

netsh advfirewall set {profileName} state {on|off}

次のコマンドを使用すると、

netsh advfirewall set /?

{profileName} の値を確認できます。

リモート デスクトップを有効にする 最後に、ターミナル サービスを使用して Server Core インスタンスのコンソールを管理する場合は、次のコマンドを使用します。

cscript c:\windows\system32\scregedit.wsf /ar 0

これで準備完了です。必要なすべてのコンポーネントを Server Core インスタンスにインストールできるようになりました。Server Core で実行可能な役割は、完全な Windows Server 2008 インスタンスにインストールできる役割のサブセットに制限されていることに注意してください。インストールできる役割は次のとおりです。

  • Active Directory ドメイン サービス
  • Active Directory ライトウェイト ディレクトリ サービス
  • DHCP サーバー
  • DNS サーバー
  • ファイル サービス
  • メディア サービス
  • 印刷サービス
  • Hyper-V
  • Web サービス (IIS) (制限付き)

実行可能な役割が制限されているということは、Server Core インスタンスでは、お使いの環境のニーズをわずかしか満たすことができない可能性があります。Server Core インスタンスによって、ドメイン コントローラ、DNS サーバー、ファイル サーバーなどの優れたライトウェイト インフラストラクチャ サーバーが作成されます。このような役割とは、限定的に直接コンソールから相互作用できればよいので、一般に、少数の古いハードウェアで間に合わせることができます。

また、少ないハードウェアで機能する Server Core では、Hyper-V をホストするときにサポートを必要とします。Hyper-V を使用する場合、仮想マシンを実行するために、ハードウェアからできるだけ多くのパフォーマンスを引き出すことが目標となります。Hyper-V の仮想化層を処理するには、プライマリ パーティション上にオペレーティング システム インスタンスが必要なので、Server Core の操作に必要なハードウェアが少なくてすむということは、仮想マシンの運用により多くのハードウェア リソースを使用できることになります。

これを活かすには、Server Core にコンポーネントをインストールする際に 2 つのコマンドを知っておく必要があります。1 つは、サーバーにインストール済みの使用可能なコンポーネントを一覧する oclist コマンドです。もう 1 つは、目的のコンポーネントをインストールする ocsetup {componentName} コマンドです。たとえば、Hyper-V の役割をインストールするには、次のコマンドを使用します。

ocsetup Microsoft-Hyper-V

ほぼすべての Windows コマンドとは異なり、ocsetup コマンドでは大文字と小文字が区別されます。そのため、コンポーネントをインストールするには、oclist コマンドを使用して大文字と小文字が正しく区別された正確な名前を確認してから ocsetup コマンドを使用してコンポーネントをインストールする必要があります。

Wusa という別のコマンドは、修正プログラムをインストールする際に便利です。MSU または MSP 修正プログラムを手動でインストールするには、次のコマンドを使用します。

wusa {patchFileName}

Core の管理

Server Core をインストールした後は、多くの場合、デスクトップにインストール済みの管理コンソールを使用して残りの管理作業を行います。たとえば、Hyper-V の役割をインストールした後は、Hyper-V で処理する他のすべての作業を Hyper-V マネージャを使用して行います。そのため、Server Core インスタンスを構築した後は、Server Core インスタンスでの作業が容易になります。

依然として、サーバー自体と相互作用して、ファイルを操作したり新しいコンポーネントや修正プログラムをインストールしたりする必要がある場合があります。この操作を行うには、ターミナル サービスを使用してサーバーに接続する方法が最もわかりやすくて簡単です。ただし、Microsoft PsTools というコマンド ライン ツール セットもあり、このツールが役立つ場合もあります。

PsTools は、有能な管理者が、システム上でネットワーク関連のあらゆるコマンド ライン ベースの操作をリモートで実行するために使用されてきました。Server Core のインストールはすべてコマンド ラインで管理されるため、特に Server Core でこのツールが使用されます。

これらのツールをまだダウンロードしていない場合は、PsTools サイト (technet.microsoft.com/sysinternals/bb896649.aspx) から入手できます。ダウンロード パッケージには、すべての PsTools の使用方法が記載された HTML ヘルプ ファイルが含まれています。

パッケージを展開した後、管理デスクトップのパスに含まれている場所に PsTools をコピーします。ご参考までにお知らせしておくと、私は c:\windows に PsTools をコピーします。c:\windows は、コマンド プロンプトを開いたときに常にアクセスできる場所です。

PsTools は多数ありますが、Server Core で作業するときに特に便利な PsTools が 2 つあります。1 つ目は PsExec です。PsExec を使用すると、別のコンピュータからリモートでコマンドを実行できます。PsExec は、Server Core のリモート インスタンスで個別にコマンドを起動する場合に役立ちますが、リモートのコマンド プロンプトを起動するときに使用するとさらに便利です。図 3 に示すように、この操作は次のコマンドを使用して管理デスクトップから実行できます。

psexec \\{computerName} cmd

fig03.gif

図 3 Server Core のコマンド プロンプトをローカル デスクトップで操作できるようにする PsExec

Server Core インスタンスに対してこのコマンドを実行すると、お使いのコマンド プロンプトがリモート サーバーのコマンド プロンプトとまったく同じものになるのがわかります。

ただ単に、プロセスがサーバーでどのように動作しているのかを知りたいことがあります。1 つのプロセスで、適正以上のプロセッサやメモリを使用しているかもしれません。そんなとき、PsList が役立ちます。定期的に更新されるテキスト ベースのプロセス ビューを起動して、プロセスのリソース使用率を表示するには (図 4 参照)、次のコマンドを使用します。

pslist \\{computerName} /s

fig04.gif

図 4 実行中のプロセスの一覧を表示できる PsList

結果として表示されるプロセスの一覧は定期的に更新され、プロセッサの使用率順に並べ替えられます。動作が不適切なプロセスを見つけた場合は、次のコマンドを使用して、問題のプロセスを強制終了できます。

pskill \\{computerName} {processNameOrPid}

最後に、Server Core インスタンスの管理に非常に役立つ、VBScript と Windows PowerShell という 2 つのスクリプト言語をご紹介します。Server Core には、コンソールから直接コマンドを起動するために必要な VBScript ランタイム コードが付属していますが、Windows PowerShell を使用するための機能は現在含まれていません。そのため、管理デスクトップで Server Core インスタンスに対して Windows PowerShell コマンドを実行することはできますが、Server Core インスタンス内から直接 PowerShell コマンドを起動することはできません。

よろしいでしょうか。今日は、小規模環境で Server Core を使い始めることができるだけの情報を提供しました。

小規模環境で問題が発生したり、サポートや詳細情報が必要になった場合は、gshields@concentratedtech.com (英語のみ) までご質問やご意見をお送りください。

Greg Shields (MVP) は、Concentrated Technology の共同創設者であり、IT の専門家です。最新の著書には、『Windows Server 2008: What's New/What's Changed』(SAPIEN Press) があります。彼の連絡先については、ConcentratedTech.com を参照してください。