Windows Server に IIS をインストールする方法

ローカルでウェブサイトやウェブアプリを配信したい場合、IIS は最初の一歩です。Windows Server に組み込まれているものの既定では有効化されていないため、数クリックかコマンドで有効化します。このガイドは、Server Manager を使用する手順と PowerShell/DISM での自動化手順をわかりやすく説明します。
目次
- GUI を使ったインストール
- サーバー マネージャーを開く
- 役割と機能の追加ウィザード
- サーバーの選択と役割の指定
- インストール確認と検証
- PowerShell と DISM を使ったインストール
- PowerShell 実行例
- DISM 実行例
- なぜ IIS が必要か
- インストール後に行うべき設定
- セキュリティと運用上の注意点
- トラブルシューティングと検証手順
- 役割別チェックリスト
- よくある質問
GUI を使ったインストール
サーバー マネージャーを開く
- サーバーで「スタート」メニューを開き、「サーバー マネージャー」を選択します。
- サーバー マネージャー上部の「管理」をクリックし、「役割と機能の追加」を選びます。
重要:管理者権限でサーバーにログオンしていることを確認してください。リモートで実行する場合は、リモート管理が許可されている必要があります。
役割と機能の追加ウィザード
- ウィザードが開始したら「次へ」を押します。
- 「ロールベースまたは機能ベースのインストール」を選択して「次へ」。
サーバーの選択と役割の指定
- サーバープールから対象サーバーを選択して「次へ」。
- 「サーバーの役割の選択」画面で「Web サーバー(IIS)」にチェックを入れます。必要に応じて表示される追加機能を [追加] してください。
- 「機能の選択」画面で ASP.NET や .NET 拡張など、必要な機能を選択します。
- 選択内容を確認し、「インストール」をクリックします。
インストール確認と検証
- インストールが完了したら「閉じる」をクリックします。
- ブラウザでサーバー上から http://localhost にアクセスし、IIS の既定ページが表示されれば成功です。
PowerShell と DISM を使ったインストール
GUI を使わない自動化やスクリプト導入時に便利です。以下は管理者権限の PowerShell を想定しています。
PowerShell 実行例
基本的な IIS のインストール:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
追加の機能(ASP.NET、管理ツール、WebSockets など)をまとめて入れる例:
Install-WindowsFeature -Name Web-Server, Web-ASP, Web-Mgmt-Tools, Web-WebSockets
- 補足:-IncludeManagementTools を付けない場合、IIS 管理ツールは含まれません。必要に応じて明示的に追加してください。
DISM 実行例
DISM はイメージや現在の OS に機能を有効化できます。複数の機能を順に有効化する例:
dism /online /enable-feature /featurename:IIS-WebServerRole /all
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
dism /online /enable-feature /featurename:IIS-WebSockets /all
- 補足:DISM は自動化スクリプトやコンテナイメージのビルドに向いています。
なぜ IIS が必要か
IIS は単なるウェブサーバーではありません。主な用途:
- ASP.NET アプリケーションや古い .NET ベースのサービスのホスティング。
- 社内のダッシュボードや管理用 UI の配信。
- ARR や URL Rewrite を併用したリバースプロキシやルーティング処理。
- SSL/TLS 証明書の管理とバインドの集中管理。
IIS は Windows のネイティブ機能と統合されているため、Windows 認証やグループポリシーとの連携が容易です。
インストール後に行うべき設定
基本的な初期設定
- サイトの作成とバインディング設定(ホスト名、ポート、SSL)。
- アプリケーションプールの確認と適切な .NET CLR バージョン設定。
- IIS 管理ツールでログの保存先とログローテーション方針を決定。
SSL の設定フロー
- 証明書を生成または発行機関から取得する。
- サーバーに証明書をインポートし、IIS のサイトバインディングで HTTPS を追加する。
- 必要に応じて HSTS や TLS の最低バージョンをポリシーで制限する。
運用上の推奨設定(簡潔)
- アプリケーションプールごとに専用アカウントを使う。
- 管理ポート(例:5985/5986 などの WinRM)やリモート管理は必要最小限に。
- 自動更新やスナップショット運用の方針を作成。
セキュリティとハードニング
- 必要な IIS モジュールのみをインストールして攻撃面を削減する。
- デフォルトの既定サイトは本番環境では無効化または削除する。
- リクエストフィルタリング(Request Filtering)を利用して、不要な HTTP 動詞や長い URL をブロックする。
- TLS 設定を強化し、古い暗号スイートとプロトコル(SSLv3、TLS 1.0)を無効化する。
- ログを中央集約(SIEM)して異常アクセス検知を行う。
トラブルシューティングと検証手順
インストール後に http://localhost を確認できない場合:
- サービス一覧で World Wide Web Publishing Service が起動しているか確認。
- ファイアウォール設定で該当ポート(80/443)が許可されているか確認。
- Event Viewer の Windows Logs → Application / System を確認してエラーを参照。
PowerShell や DISM 実行で失敗した場合:
- 管理者権限で PowerShell を実行しているか確認。
- 依存する機能が不足していないかログを確認。
役割別チェックリスト
管理者向け:
- IIS のインストールと管理ツールの導入
- SSL 証明書の配置とバインド
- バックアップ/リストア手順の文書化
開発者向け:
- アプリケーションプールの設定(.NET バージョン)
- デプロイ手順(MSDeploy など)の確認
- ローカルでの http://localhost テスト
運用担当者向け:
- ログのローテーションと保管ポリシー
- モニタリングとアラート閾値の設定
- 定期的なセキュリティパッチ適用スケジュール
簡易プレイブック(素早く導入する手順)
- サーバーに管理者でログオン。
- 必要なバックアップを取得(スナップショット等)。
- PowerShell で以下を実行:
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
- ブラウザで http://localhost を確認。
- 必要な機能(ASP.NET 等)を追加でインストール。
- SSL を設定して本番用バインディングを作成。
- モニタリングを有効化して正常性を監視。
テストケースと受け入れ基準
- テスト1: http://localhost にアクセスし IIS 既定ページが表示されること。
- テスト2: 管理ツール(IIS Manager)でサイトの作成とバインディング編集ができること。
- テスト3: アプリケーションプールが起動し、サンプル ASP.NET ページが 200 を返すこと。
受け入れ基準: すべてのテストがパスし、主要なログに致命的なエラーがないこと。
よくある質問
IIS を Server Manager なしでインストールできますか?
はい。PowerShell の Install-WindowsFeature や DISM による unattended インストールが可能で、自動化に適しています。
IIS をインストールした後にサーバーを再起動する必要がありますか?
通常は不要です。ほとんどの機能は即座に利用可能になりますが、一部のシステムコンポーネントの更新や特定の機能追加では再起動が求められる場合があります。
IIS が正しくインストールされたかどうかはどうやって確認しますか?
サーバーのブラウザで http://localhost にアクセスし、IIS の既定のウェルカムページが表示されれば成功です。また、IIS 管理ツールが起動できるかも確認してください。
PowerShell で管理ツールも一緒にインストールされますか?
-IncludeManagementTools を付けることで管理ツールも同時にインストールできます。指定しない場合は別途追加が必要です。
まとめ
IIS のインストールは GUI と CLI のどちらでも短時間で完了します。運用にあたっては最小限のモジュール選定、SSL 設定、ログ管理、そしてモニタリングを早めに整備しておくことが重要です。自動化が必要な環境では PowerShell や DISM を活用してください。
重要な追加情報:
- ローカルテストで問題ない場合でも、ファイアウォールやネットワーク ACL、ロードバランサの設定によって外部接続がブロックされることがあるので本番移行前に確認してください。