謎社では 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の書き方も紹介したいと思います。