2017-01-11 10 views
1

私はボタンがpowershellスクリプトを呼び出すWin Form App(C#)を持っています。このアプリ(exeファイル)を共有している場合は、すべてのps1ファイルを添付する必要があります。セキュリティ上の理由から、私はユーザーがps1ファイルを開いてスクリプトを読むことができないようにしたかったのです。それらを安全にすることは可能ですか?C#windowsフォーム。 Powershellスクリプトセキュリティ

さらに詳しく説明すると、私はすべてのスクリプトへの読み取りアクセスを制限したいと思います。アプリユーザーは、ボタンをクリックするだけで結果を確認できます。ユーザーは詳細コードを表示するためにスクリプトファイルを開くことができません。そのため、ユーザーはwindowsApp.exeをクリックしてWindowsフォームアプリケーションを実行するだけです。ボタンをクリックすると、psスクリプトが実行されます。 .netが何らかの理由ですべてのps1ファイルをエンドユーザーの可視性から隠すことができるかどうかを調べるために探しているのはすべてです。

ご協力いただきありがとうございます。

+1

ユーザーはいつでもEXEを逆コンパイルできます。ユーザーが物事を見ることを望まない場合は、それらのマシンから完全に離してください。 – SLaks

+0

あなたが持っているかどうかわかりません。私はプログラムを実行するためにそれをユーザーに与える必要があります。 psファイルには信任状のような感覚的な情報が含まれているので、読み書きをクリアテキストで共有することはお勧めできません。私たちはプログラミングを実行して、スクリプトをユーザが読めないようにしなければなりません。 – Salah

+0

ユーザーのマシンで使用可能なすべての信任状をユーザーが読み取ることができます。期間。 Powershellスクリプトからそれを動かすだけで、少し難しくなります。 – SLaks

答えて

1

身分証明書を隠すことは、不可能ではないにしても、100%の確実性で取り除くことは困難です。資格情報の入力を求め、別のコマンドレットで資格情報を使用することをお勧めします。たとえば:あなたはスクリプトにユーザーの資格情報をハードコーディングした場合

$credential = Get-Credential 
Enter-PSSession -ComputerName SERVER01 -Credential $credential 

、ユーザーにパスワード(複数可)を開くだけではなく、自分のパスワードが変更された場合の問題に実行することができます。このようなことによって引き起こされるADのロックアウトは、追跡する苦痛です。

あなたは正確に何をしようとしていますか?より具体的な場合は、要件を満たす方法があるかもしれません。

+0

この問題についてお手伝いをしていただきありがとうございます。私は質問に追加情報を追加しました。さらなる説明が必要な場合は、私にお知らせください。ありがとう! – Salah

+0

あなたのPSスクリプトが何をしているかの例を教えてもらえますか?スクリプトには管理者の資格情報が必要ですか?これを行う「正しい」方法は、管理者の資格情報を必要としないスクリプトを開発することです。 – 3burk

+0

例:スクリプトは、セキュリティ保護されたサーバーからログを読み取り、ステータス値を抽出します。勝利フォームのエンドユーザは、スクリプトを知る/見ることはできず、スクリプトを変更することもできません。ログの結果やステータスを確認するには、ボタンをクリックするだけです。私の現在のセットアップでは、複数のスクリプトが複数のボタンの下で実行されています。このアプリをエンドユーザーに渡すと、私はそれらに読みやすいすべてのスクリプトを提供する必要があります。セキュリティのために、アクセスを制限する必要があります。これがこの問題を説明するのに役立つことを願っています。どうもありがとうございました! – Salah

関連する問題