1

システム管理者は、いくつかの一般的なハウスキーピング Power Shell スクリプトを作成しています。主に AD 管理 (取引所の詳細の更新、セキュリティ グループ間の移動など)

これらのスクリプトを C# から使用したいと考えています (Web サイトで使用されるライブラリとして作成するつもりです)。

このコード プロジェクトの記事を見たことがありますが、これは興味深く、開始するのに適しています。

Power Shell 相互運用の経験がある人はいますか? 真っ先にスパイクに飛び込む前に、誰か大きな落とし穴を思いつくことができますか?

追加情報:

特に CI とバージョン管理に関しては、ロジスティクス上の課題があることを理解しています。

当初の計画では、Directory Services を使用し、Web API と CmdLets を介してサービスを公開する予定でした。残念ながら、ディレクトリ サービスに問題があります (例: 大きなセットの結果が切り捨てられる)。

その間、一貫性のない組み合わせを使用するのではなく、システム管理者のスクリプトを使用して調査する必要があると考えました。なぜ車輪を再発明するのですか?

ドメイン モデルは既に作成済みです。リポジトリ パターンを実装して、AD と Exchange の統合を抽象化し、将来的にさまざまな実装を可能にするつもりです。

4

3 に答える 3

2

スクリプトがシステムまたはユーザー プロファイルに依存している場合は、最初にプロファイルを実行空間に明示的にドットソースする必要があります。

より高いレベルの制御 (例: あるコマンドから別のコマンドへのセッションの実行、... デバッグ出力へのアクセス) には、より高度な/低レベル/複雑な作業が必要です。

それ以外は、すべて機能します。

于 2009-04-15T16:28:25.347 に答える
1

コンパイルされたプログラムからスクリプトを実行するという通常の問題に対して、このアプローチには多くの落とし穴があるとは思いません。最大の問題は

  1. 人々がスクリプトを動かさないようにする
  2. 呼び出し元のプログラムに反映されていない非表示の依存関係をスクリプトに追加しないようにします。

しかし、私はあなたがあなたの開発のために別のモデルを検討するべきだと思います。プログラムにスクリプトを参照させる代わりに、コンパイルされたライブラリにすべてのロジックを追加してみませんか。これはプログラムに簡単にリンクでき、CmdLetを介してPowerShellに公開できます。これは、プログラム内のスクリプト間で共有コードを維持するためのより簡単な方法だと思います。

于 2009-04-15T13:28:40.567 に答える