本記事はAIを利用して作成した技術解説・実装例です。掲載するコードや手順は一次情報を基に構成していますが、筆者による実機での動作確認は行っていません。環境やバージョンによって動作が異なる場合があります。
Microsoft Desired State Configuration (DSC) v3.3.0の公式発表に基づき、追加された新機能や変更点、主要なコマンドの仕様を整理します。本記事では、DSC v3.3.0の全体像を安全に把握し、公式で提供されている構成定義や新しいアダプターの仕組みを読み解くことを目的としています。
目的と前提・注意点
本記事の目的
DSC v3.3.0における新機能、Windowsリソースの拡張、CLIの変更点、式関数のアップデートなどを公式ブログに基づき整理し、実環境で安全に利用するための知識を深めます。
前提・注意点
本記事の内容は公式アナウンスメントに基づくものであり、【実機確認前】の状態です。
Windows環境における具体的な実行結果は示さず、公式情報の仕様解説に留めます。
旧バージョンから変更されたコマンドラインオプション(
--versionから--required-versionへの移行など)に注意する必要があります。
DSC v3.3.0の主要な新機能と構成要素
DSC v3.3.0では、実環境での利用やコミュニティからのフィードバックを反映し、多くの機能強化が行われています。主な構成要素は以下の通りです。
flowchart TD
A["DSC v3.3.0 Release"] --> B["New Windows Resources"]
A --> C["New Adapter & Server Rename"]
A --> D["Expression Functions"]
A --> E["Expanded What-If & Firewall"]
A --> F["CLI & OSInfo Changes"]
B --> B1[RegistryList]
B --> B2[WindowsFeatureList]
B --> B3[Personalization]
C --> C1["Microsoft.Windows.Adapter/Registry"]
C --> C2["dsc server (formerly dsc mcp)"]
D --> D1["format() Stable"]
D --> D2["stateChanged() & restartRequired()"]
E --> E1["Service / SSHD --what-if"]
E --> E2["FirewallRuleList unspecifiedRules"]
F --> F1[--required-version]
F --> F2["OSInfo Version Comparison"]
新しいビルトインWindowsリソース
DSC v3.3.0では、Microsoft.Windows ネームスペースに3つの新しいリソースが追加されました。これらはすべてインボックスで提供されます。
Microsoft.Windows/RegistryList
従来は1つのキーや値につき1つのインスタンスが必要だったレジストリ設定を、単一のリソースインスタンス内で配列として管理します。
基盤となる
registry.exeに--listスイッチが追加され、バージョンが 1.1 に更新されています。
Microsoft.Windows/WindowsFeatureList
- Windows機能をリスト形式で管理するためのリソースです。
Microsoft.Windows/Personalization
- アクセントカラー、ライトモード・ダークモード、透明度などのWindowsパーソナライゼーション設定を管理します。
これらはDSC CLIを使用して発見やスキーマの確認が可能です。
新アダプターとDSCサーバー(旧MCP)の変更
レジストリバックエンドアダプター
Microsoft.Windows.Adapter/Registry が導入されました。JSONプロパティ値とレジストリ表現の変換ヘルパーが含まれており、リソースは通常のJSONプロパティとして望ましい状態を表現し、アダプターがレジストリの読み書きを処理します。
dsc server への名称変更
これまで dsc mcp と呼ばれていたコマンドは、利便性を反映して dsc server に名称が変更されました。既存のクライアント設定との互換性を保つため、mcp という名前は後方互換性エイリアスとして保持されます。接続クライアント向けには以下の3つのツールが利用可能です。
show_dsc_schema()invoke_dsc_function()invoke_dsc_expression()
式関数のアップデートと安定化
設定ドキュメント内のリソース状態を評価するための式関数が更新されています。
format()の安定化: プレビュー段階を終え、本番構成で利用可能になりました。stateChanged(): リソースインスタンスが現在のset操作中に状態を変更したかどうかを返します。restartRequired(): システム、サービス、またはプロセスが再起動を必要としているかどうかを返します(例:restartRequired('system')、restartRequired('service', '<serviceName>'))。
プレビュー・拡張機能(–what-if、ファイアウォール、合成エクスポート)
--what-if のサポート拡大
システムを変更することなく、set 操作によって変更される内容をプレビューできる --what-if が、以下の領域でサポートされるようになりました。
Microsoft.Windows/ServiceMicrosoft.Windows/FirewallRuleListSSHD設定リソース
Microsoft.Windows/FirewallRuleList の未指定ルール処理
unspecifiedRules プロパティが追加され、設定に記述されていないファイアウォール規則の扱い(action、direction、profiles)をきめ細かく制御できるようになりました。
合成エクスポートフィルタリング(実験的)
エクスポート操作でインスタンスのフィルタリングを直接実装していないリソースに対し、DSCエンジンがフィルタリングを代行する機能が実験的(experimental)として導入されています。
CLIおよびOSInfoの仕様変更
--required-versionへの置き換え:dsc resource *コマンドで従来の--versionに代わり--required-versionが使用されるようになりました(旧フラグは後方互換エイリアスとして維持)。Rust風のセマンティックバージョンの要件(^1.1、~1.2.3、>=1等)を指定できます。Microsoft/OSInfoのバージョン比較: オペレーティングシステムのバージョンに対し、厳密な一致だけでなく比較演算子(=、<、<=、>、>=)を用いた制約の指定が可能になりました。
まとめ
、公式情報に基づきMicrosoft Desired State Configuration v3.3.0の新機能と変更点を整理しました。実行前に確認すべき点と制約は以下の通りです。
【実機確認前】のため、実際の環境でのコマンド実行結果や動作は本記事では保証されません。
コマンドラインオプションの変更(
--required-versionへの移行など)や、実験的機能の仕様変更の可能性に注意してください。詳細なインストール手順や最新のリリースノートについては、公式リポジトリおよびドキュメントを参照してください。
