Windows Server 2022 with PS 第1章

第1章: はじめに ~ Windows Server 2022とPowerShellの基礎知識

1. この章で解説する主要な技術・概念

  1. Windows Server 2022の概要と新機能
    • エディション構成(Standard, Datacenter, Essentialsなど)
    • セキュリティ機能の強化(Secured-coreサーバー、TLS 1.3サポートなど)
    • 仮想化・コンテナ機能の進化とハイブリッド運用
  2. Server CoreとGUI(Desktop Experience)版の比較
    • Server Coreの利点・制限、GUI環境との違い
    • 運用やトラブルシュート観点でのメリット・デメリット
  3. PowerShellの歴史と進化、基本思想
    • Windows PowerShell 5.1からPowerShell 7への流れ
    • “オブジェクトパイプライン”の意義
  4. 必要な環境・ハードウェア要件と前提知識
    • CPU、メモリ、ディスク容量、ネットワーク要件
    • ドメイン、ネットワーク設定、サーバー基礎知識
  5. PowerShellを学ぶメリットと運用での活用例
    • スクリプトによる一括管理、自動化、構成の一貫性

2. Windows Server 2022の概要と新機能

2-1. エディション構成と特徴

  1. Windows Server 2022 Standard
    • 中小規模の仮想化やオンプレ運用に適したエディション。
    • 基本的なサーバーロールや機能をすべて利用可能。
    • 仮想マシン(VM)ライセンスの権利が限定的(一部の仮想化権利がDatacenterに比べ少ない)。
  2. Windows Server 2022 Datacenter
    • 大規模な仮想化や高可用性、Software-Defined機能を最大限活用したい場合に最適。
    • Hyper-Vで無制限のVMライセンス権利が得られるなど、大規模向けに最適化されている。
  3. Windows Server 2022 Essentials
    • 小規模事業者向けに機能を簡略化したエディション。
    • ユーザー数が25人以下など、制約があるものの、設定や管理が手軽。

2-2. セキュリティ強化点

  • Secured-coreサーバー: ハードウェアとファームウェアレベルのセキュリティを重視し、ブートプロセスやドライバを堅牢化。
  • TLS 1.3サポート: ネットワーク通信の暗号化性能が向上し、古い脆弱な暗号化方式を排除する動きと連携。
  • 仮想化ベースのセキュリティ(VBS): カーネルや重要プロセスを分離する仕組み。Credential GuardやHVCI(Hypervisor-protected Code Integrity)なども含まれる。

2-3. 仮想化・コンテナ機能の進化

  • Windowsコンテナのパフォーマンス改善: コンテナイメージのサイズが削減され、起動が高速化。
  • Hyper-Vの強化: セキュアブートやNested Virtualization(仮想マシン内で再度仮想化可能)をさらに拡充。
  • ハイブリッド運用への適合: Azure Arcなどと連携してオンプレ環境でもAzureリソースと一元管理しやすい。

3. Server Core版とGUI(Desktop Experience)版の比較

3-1. Server Coreのコンセプトとメリット

  1. 軽量化によるセキュリティ向上: GUI関連のコンポーネントを省き、攻撃対象を減らすことで脆弱性リスクを低減。
  2. パッチ適用の頻度軽減: GUI関係の更新が不要になり、月例パッチでも適用項目が減り、ダウンタイムを短縮できる。
  3. パフォーマンスの最適化: メモリ消費やCPU負荷が軽くなり、同一ハードウェアでより多くのワークロードを処理しやすい。
  4. リモート管理前提: sconfigやPowerShell Remoting、Windows Admin Centerなど、遠隔操作を前提とした設計。

3-2. GUI(Desktop Experience)版の利点と注意点

  1. 従来通りのGUI管理ツールが利用でき、学習コストが低い。
  2. Server Manager各種ウィザードを使ったローカル操作が可能で、トラブルシュートも直感的。
  3. ただし、ディスク容量パッチ適用量がServer Coreに比べて増えるため、
    • 省リソースやセキュリティ重視の場合はServer Coreを優先検討。
    • 学習期間の短縮やGUI前提のアプリケーションが必要ならGUI版も選択肢に。

4. PowerShellの歴史と進化、基本思想

4-1. PowerShellの沿革

  1. Windows PowerShell 1.0(当初は“Monad”プロジェクト)
    • Windows管理を自動化する新シェルとして登場。
  2. PowerShell 5.1(Windows Server 2016 / 2019世代)
    • Windows OSに標準搭載され、膨大なコマンドレットが利用可能に。
  3. PowerShell 7.x(オープンソース化 / クロスプラットフォーム対応)
    • .NET Core上で動作し、LinuxやmacOSでも利用可能。
    • ただしWindows Server標準は5.1であるため、本書では主に5.1を前提とし、必要に応じて7系の差分に触れる。

4-2. オブジェクトパイプラインの意義

  • 従来のシェルは文字列ベースでパイプを繋ぐのが一般的(UNIX/Linux系)。
  • PowerShellはオブジェクトベースでパイプを連結し、コマンドの出力をそのままオブジェクトとして次のコマンドに引き継ぐ。
  • これにより、プロパティメソッドを操作しやすく、複雑な管理タスクを短いスクリプトで実装できるメリットがある。

5. 必要な環境・ハードウェア要件と前提知識

5-1. ハードウェア要件

  1. CPU: 64ビット対応、最低1.4GHz以上
  2. メモリ:
    • 最低512MB(Server Core)または2GB(GUI版)
    • 実運用では4~16GB以上を推奨。役割や規模で大きく変動
  3. ディスク容量:
    • 最低32GB(Server Core)~より大容量推奨(GUI版では40GB以上を想定)
  4. ネットワーク:
    • 1Gbps以上のNICが望ましい。クラスタ構成などでは複数NICが推奨

5-2. 前提知識

  1. Windows OSの基本操作:
    • ファイルシステム構造、サービス/プロセス概念など
  2. ネットワーク基礎:
    • IPアドレス、サブネットマスク、ゲートウェイ、DNSなど
  3. ドメイン環境:
    • Active Directoryの基礎、ユーザー/グループ管理の基本
  4. コマンドライン経験:
    • コマンドプロンプトや他シェルでの基本操作があると学習がスムーズ

6. PowerShellを学ぶメリットと運用での活用例

6-1. メリット:スクリプト自動化と一貫性

  1. 一括管理の容易さ:
    • ユーザーアカウント作成、ロールの導入、パスワードポリシー設定などをスクリプトでまとめて実行し、設定の一貫性を確保。
  2. 大規模環境での高速展開:
    • 何十台、何百台というサーバーに対して同じスクリプトを適用でき、手作業ミスを減らしながら短時間で設定を完了。

6-2. 運用シーンでの具体例

  1. リモート管理:
    • Server Coreを含む複数サーバーをEnter-PSSessionInvoke-Commandで制御。WAC(Windows Admin Center)とも併用可能。
  2. タスクスケジューラと組み合わせた定期タスク:
    • バックアップ、ログローテーション、パッチ前後のサービス制御など。
  3. セキュリティ強化:
    • アクセス制御リスト(ACL)の設定、イベントログ監査、セキュリティポリシー変更をスクリプト化。
  4. 継続的な構成管理:
    • IaC(Infrastructure as Code)アプローチの一環として、コードベースでサーバー構成を管理し、変更や復元を容易に。

7. 簡単なPowerShellコマンド例と導入のハンズオン

7-1. PowerShellコンソールの起動

  1. Server Core: 初期画面がコマンドプロンプトの場合、powershell と入力すればPowerShellに切り替わる。
  2. GUI版: スタートメニューの検索バーで「PowerShell」と打つか、スタートボタン右クリック → 「Windows PowerShell」 から起動。

7-2. 基本的なCmdlet例

Get-Service
  • 現在動作中のサービス一覧を表示(Status, Name, DisplayNameなど)。
Get-Process
  • 現在動作中のプロセス一覧を表示(CPU時間, メモリ使用量などを含む)。
Get-Help Get-Process -Full
  • Cmdletの詳細なヘルプ(パラメーター説明、使用例など)を閲覧。-Full で追加情報も確認可能。

7-3. サンプル:サービスの再起動ハンズオン

# wuauserv (Windows Update) サービスを再起動する例
Stop-Service -Name "wuauserv"
Start-Service -Name "wuauserv"
  • 実行結果: 特にエラーがなければ、Windows Updateサービスが再起動される。
  • 続けて Get-Service -Name wuauserv を実行し、Status が Running に戻っているか確認。

8. 章末まとめと次章へのつながり

8-1. 学習のまとめ

  • Windows Server 2022のエディション構成や新機能(Secured-core、TLS1.3など)を理解し、従来のServer 2019からの進化点を把握しました。
  • Server Core vs. GUI版のメリット・デメリットを比較し、セキュリティ・パフォーマンス重視ならServer Core、操作性・学習コスト重視ならGUI版も選択肢に。
  • PowerShellの歴史や基本思想を再確認し、オブジェクトパイプラインの利点や今後の拡張性を理解。
  • 必要なハードウェア要件前提知識として、CPU・メモリ・ディスク・ネットワークなどの基本を押さえ、ドメイン管理の基礎もあるとスムーズに進められることを学びました。
  • PowerShellを学ぶメリットとして、一括管理・自動化・ミス削減・スケーラビリティといった現代的なインフラ運用に適合している点を強調しました。
  • 簡単なCmdlet例(Get-Service, Get-Processなど)を試し、PowerShellの操作感を掴むハンズオンを示しました。

8-2. 次章へのつながり

  • 次章(第2章)では、PowerShellの基礎にさらに深く踏み込み、コマンドレットの使い方やパイプライン活用、ヘルプシステムの参照方法、スクリプトの実行ポリシーなどを詳しく学習します。
  • 本章で得た「Windows Server 2022とPowerShellを使う意義・概要」をベースに、具体的なコマンド操作や応用テクニックを順を追って習得していきましょう。