2016-11-17 4 views
0

だから私はPowerShellのスクリプトA作る方法を知りたいと思ったPowerShellを作成することができますスクリプトBクリート別の独立したPowerShellのスクリプト

主な目的はスクリプトBがから独立して持つことですスクリプトA(セキュリティ上の理由から)私はスクリプトAで取得したキーをハッシュしています。

は、私は、スクリプトAがアクションを行います スクリプトBとして、 スクリプトB作成しても、他の独立した環境に取られるも持っていると思います。

それでは、どのように私はすることができます

A:は最初経由で新しいスクリプトを作成しますか?

B:たときに別のVMやPC環境でのスクリプトB実行、それはスクリプトAを必要としないようにしている、$のHASH1(KEY1のハッシュ)は、スクリプトBに渡します$ hash1を使用する

ありがとう

+0

だから私は目標を集めることができるのは、スクリプトAがハッシュに依存するスクリプトBを生成することですが、何らかの形でハッシュが存在しない状態でスクリプトBが動作するのですか?それは実行可能ではないでしょう。ハッシュがそこにあり、スクリプトによって(そしてスクリプトの読み込みアクセス権を持っている誰でも)認証されているか、ハッシュは存在せず、スクリプトは認証できません。一方、スクリプトAに独自のハッシュを使ってスクリプトBを生成させたいのであれば、 'Out-File'でそれを行うことができますが、スクリプトBにアクセスできる人はあなたのキーにアクセスできます(ハッシュしても)。 –

+2

なぜあなたはあなたの手にXYの問題がある場合、これをしたいのか知ってうれしいです。おそらくこれの本当の動機づけを知っていると、より良い答えが得られるはずです。 – Matt

+0

@Matt 私の目標は、ダイアログを介してキーを要求し、ハッシュし、ウィンドウ、ソフトウェアなどを起動するps1スクリプトを使って再利用可能なexeファイルを作成するスクリプトを作ることになったことです。後者を手動で行うことはできますが、単にファイルをダブルクリックするだけで、新しいキーを入力してそれに基づいて新しいexeファイルを生成するという、おばあちゃんのプロセスを単純化する方法はありません。 – AdilZ

答えて

1

A:Powershellスクリプトはテキストとして保存されます。あなた(=スクリプトA)はテキストをファイルに出力することができ(例えばscriptB.ps)、このファイルを実行することができます。

B:スクリプトAで "return statement"を使用することができます。このハッシュが必要ない場合は、この入力パラメータを使用しなくても実行するようにコードを記述するか、デフォルトパラメータを使用する必要があります。そしてどうやって?おそらくif文を使用します。

1

範囲が限定されているが、おそらくより一般的な点を除いて、私が説明しているようなツールを作成しました。私は実際にはpowershellスクリプトを生成せず、SQLスクリプトを生成するように作成しました。 PSスクリプトを生成するのにこれを使うことができますが、これは次のような非常に限定された形式です:

& someFunctionorApp -arg11 -arg12 -arg13 ... 
& someFunctionorApp -arg21 -arg22 -arg23 ... 

とおそらく100回繰り返されます。 argsはすべてデータソースやその他のものから来ており、例のために汎用名を接続しました。この生成されたスクリプトは、賢いスクリプタがループの中で行うことができるようにブルートフォースによって行うかもしれないが、そうであってもよい。

私のツールでは、ドライバはCSVファイル内に格納されたデータです。 CSVファイルは、データベース、スプレッドシート、および情報を取得する簡単なPSスクリプトから取得できます。異なるCSVファイルは異なるヘッダーを持ち、異なるフィールド名を持ちます。ツールは一般的です。私のツールへのもう1つの入力は、テンプレートと呼ばれるものです。テンプレートは、このコンテキストでは、一部のPS変数が埋め込まれた単なるテキストファイルです。このツールは、実際の値を取得してPS変数の代わりに格納するCSVファイルを実行します。

出力はコンソールに出力されますが、簡単にファイルにリダイレクトされます。

私はちょうど笑顔のために、私はツールを含めています。ツールがあなたの好みに合っていない場合は、おそらく1つまたは2つのテクニックを手に入れて、それらを適応させることができます。

関連する問題