Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

Windows Server 2008 Server Coreのコンポーネントを追加する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2008/09/26
対象OS
Windows Server 2008 Server Core
Windows Server 2008のServer Coreでは、GUIのサーバ管理ツールは用意されていない。
新しい役割や機能を追加したり、アンインストールするには、ocsetupコマンドを利用する。
コンポーネントの名前やインストール状態はoclistコマンドで確認する。
Windows Server 2008のフルインストール版にあるservermanagercmdコマンドはServer Coreでは利用できない。

解説

 TIPS「Windows Server 2008のコンポーネントをコマンドラインから追加する」では、Windows Server 2008のフルインストール版において、コマンドラインからサーバの「役割」や「機能」を追加/削除する方法を紹介した。

 だがそこで紹介したservermanagercmdコマンドは(なぜか)Windows Server 2008のServer Core版では利用できない。Server Core版では代わりに、ocsetupやpkgmgrというコマンドを利用することになっている(これらはフルインストール版のWindows Server 2008にも含まれている)。

 pkgmgrはWindows Vistaのときから用意されている、コンポーネント(パッケージ)の追加/削除のためのコマンドである。servermanagercmdと比較すると、非常に基本的な機能しか持っておらず、やや使いにくい。

Windows Server 2008の基礎知識「Server Coreに役割を追加/削除する」

 ocsetupはWindows Server 2008で新たに用意されたコマンドであり、指定されたコンポーネントをシステムにインストールしたり、削除したりできる。ただし、エラー時に表示されるメッセージが不親切だったり、パラメータとして指定するコンポーネント名がservermanagercmdと異なる、依存関係を自動処理してくれないなど、どちらかというと、管理用ツールなどが使用するための補助ツールという感じのコマンドである(内部では、pkgmgrを呼び出して実際のインストール/アンインストール作業を行っているようである)。

 Windows Server 2008のServer Core版では、このocsetupコマンド(およびそれとペアとなるoclistコマンド)を使って役割や機能を追加/削除することになっている。

操作方法

oclistコマンドでインストール可能なコンポーネントを表示する

 Windows Server 2008 Server Coreで機能や役割を追加するには、まずoclistコマンドで利用可能なコンポーネントの一覧を表示させる(oclistコマンドはServer Core版にしか含まれず、Windows Server 2008のフルインストール版では利用できない)。

oclistによるコンポーネント一覧の表示
利用可能なコンポーネントの一覧はoclistコマンドで取得できる。
oclistコマンドを引数なしで実行すると、利用可能な役割や機能の一覧とその名称、インストール状態が表示される。結果がツリー状になっているのは、依存関係を表している。
インストール状態は行頭に[未インストール:]や[インストール済み:]で表示される。
これが役割/機能の名前。後でocsetupコマンドで利用する場合は、大文字/小文字の違いが区別されるので、この通りに指定する必要がある。

 この各行の内容が追加可能なコンポーネントを表している。そして行の先頭の「未インストール:」か「インストール済み:」がインストール状態を表している。

 これから分かるように、コンポーネント名は単に「IIS-WebServerRole」とか「Microsoft-Hyper-V」などと表示されているだけである。Windows Server 2008をよく知っている管理者ならば、これらの名前がどの役割や機能に相当するものかがすぐに連想できるだろうが、初心者にはやや分かりづらいかもしれない。英語ではあるが、以下の資料なども参照していただきたい。

ocsetupコマンドでコンポーネントを管理する

 インストールする役割や機能の名前が分かったら、ocsetupの引数にその文字列を指定して実行するだけで、そのコンポーネントがインストールされる。

 ただし、このコマンドを実行してもそのインストール結果は表示されない。それどころか、すぐにコマンド・プロンプトに制御が戻ってきてしまうので、インストールがいつ終わったのかもよく分からない(タスク・マネージャなどで監視していれば分かるのだが)。

 そこで次のように、先頭に「start /w」を付けてocsetupコマンドを実行していただきたい。startはコマンド・プロンプト(cmd.exe)の内部コマンドであり、/w(/waitでも同じ)を付けると、ocsetup(およびそこから起動されたpkgmgr)コマンドの実行がすべて終了するまで待つようになる。

C:\>start /w ocsetup IIS-WebServerRole  ……インストール

C:\>  ……インストールが終了するまで戻ってこないし、終了しても何も表示されない

 この例では「IIS-WebServerRole」というパラメータ(これは「Webサーバー(IIS)」役割に相当)を指定しているが、この文字列は先ほどのoclistコマンドで表示されたものをそのまま指定している。Windows Server 2008のフルインストール版で利用できるservermanagercmdコマンドと違い、大文字/小文字は厳密に区別されるので注意していただきたい。必ずoclistコマンドの結果の通りに指定する必要がある。

 もう1つ大事なことであるが、依存関係のある機能を追加する場合は(oclistの結果でツリーの下位にある機能を追加する場合は)、その上位にある機能から順番に、先に追加しておかないといけない(途中を飛ばしてインストールできない)。正しくインストールできたかどうかは表示されないので、インストール後にoclistコマンドで確認しておこう。

/uninstallオプションでコンポーネントをアンインストールする

 すでにインストールされているコンポーネントをアンインストールするには、コンポーネント名に続けて、/uninstallオプションを指定する。End of Article

C:\>start /w ocsetup IIS-WebServerRole /uninstall  ……アンインストール

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間