tech.guitarrapc.cóm

Technical updates

PowerShell DSC Resource の公開

謎社では C# を中心として、PowerShell が隙間産業的に必要なところで使われています。

その1つが PowerShell Desired State Configuration (DSC) です。

今回、謎社で作成/利用している一部の DSC Resource を公開しました。

目次

GitHub

GitHub で公開しています。

公開内容

公開しているのは、オープンソースで公開されているリソースを含めて、謎社で利用しているものの一部です。

ScriptCenter

Microsoft PowerShell Team は、PowerShell DSC のリリースから一貫して Resource Kit Wave としてリソースを作成、公開しています。

どれも破壊的変更も辞さず、どんどん改良していくという意志から Prefix に x がついています。

そのため、特定バージョンのこれらのリソースを利用する際は、必ず c などPrefixを変更して、破壊的変更の影響がないようにと案内されています。

今回公開したリソースにも ScriptCenter から取得し、Prefixを変更したリソースが含まれています。

PowerShellOrgDSC

リソースを公開しているのは、PowerShell Team だけではありません。Chef同様にオープンソースで有志が公開しています。

その1つが、Powershell.Org という 世界で最も活発な PowerShell コミュニティが公開しているリソースです。

この中には、StackExchange で働く PowerShell MVPが作ったものも含まれており、参考になるでしょう。

今回公開したリポジトリは、Submodule として PoweRshellOrgの DSCリポジトリを向けています。

Custom

謎社で作成、利用している DSC Resource の一部です。

今回は、比較的需要の高い 2つを公開しました。

ACL

ACLは、フォルダ/ファイルのNTFS権限の設定です。 DSCを利用することで、シンプルな Configuration でACLが制御可能になります。

継承も含めて制御可能になっており、本番環境で動いているものなので試していただけると幸いです。

ScheduleTask

タスクスケジューラも公開します。 PowerShell Orgの公開しているリソースは、任意の実行ファイルが指定できず、PowerShell Script のみとなっています。

他にも各制限がありますが、今回公開したものは制限を可能な限り取り払いました。

  • 例 : Daily で毎日実行するものはこう書けます

  • 例 : Daily で毎日実行するタスクのトリガーを2つにするのも容易です

他にも 1回だけ(Once)、繰り返し実行(Repetition) にも対応しています。

特定のユーザー権限での登録を必須にしてありますので、サンプルを参考に ConfigurationData を用いて、Administrator や任意のユーザーで登録するといいでしょう。

まとめ

Resource書くの簡単なのでどんどん公開すればいいんですよ。もちろんC#でも書けますからね!

近いうちに、Resourceの書き方も紹介したいと思います。