2017-03-26 33 views
2

私は現在、スマートな電球を制御するために使用できるPowershellモジュールを作成しています。 APIの要件は、各リクエストで認証トークンを提供することです。現在、このトークンを格納するスコープ付き変数$Script:を設定するコマンドレットSet-AuthorizationTokenがあります。Powershellのユーザー設定を永続化する

現在、私が作成したすべての設定機能は、同じライトオートメーションモジュールに存在します。私は設定ロジックを独自のモジュールに分けて再利用できるようにしたいと思います。

これは私が問題に遭遇するところです。私が知っている限り、設定ロジックを独自のモジュールにプルすると、$Script:スコープを使用できなくなり、設定モジュールを使用するモジュールと共有されるようになります。さらに、現在の設定機能をリファクタリングして、何らかの識別子を提供する必要があるため、設定モジュールが呼び出し元の正しい設定を参照できるようにする必要があります。

私はそれを再利用することができるように設定モジュールを作成し、多分それだけで、それをロードモジュールについて知ることができます方法でそれを読み込むことができますいくつかの方法がありますか?多分、ある種の「図書館」のようなものでしょうか?私は各モジュールにps1ファイルをコピーしたくないが、現在は最善の方法のようだ。

+0

取り込むことができます{$スクリプト:設定= $ args [0]} $ PersistentSettings'。 – PetSerAl

答えて

2

これを処理する一般的な方法は、ファイルの暗号化された文字列として、あなたの資格情報を格納し、それらの資格情報をロードするための機能を持っているように思われます。例えば

: `&$モジュール:このような何かを持つことで`スコープ変数:あなたが設定をロードするターゲット・モジュールを表す `PSModuleInfo`オブジェクトを、持っている場合、あなたは` $スクリプトをhttps://github.com/RamblingCookieMonster/PSSlack/blob/master/PSSlack/Public/Get-PSSlackConfig.ps1

+0

これは私が今持っているものです。私はアプリケーションのルートディレクトリからファイルをロードするかもしれないdllのような何かをする方法があるかもしれないと思っていました。しかし、これまでの私の研究では、モジュールを呼び出すたびにモジュールを移動させない限り、このようなことを見たことがあります。 – cskwrd

関連する問題