2017-04-07 17 views
2

このサイトに新しいことを尋ねるのに適切な場所です:)Visual Studio 2017 C#立ち上げpowershellスクリプト

新しいユーザー作成のためにVisual StudioでGUIを作成しました。コードの一部は、ユーザ作成のために使用していたPowershellスクリプトを呼び出します。

GUIがすべて動作するので、CSVファイルを作成してからPowershellスクリプトを起動することができます。

私が気づく問題は、Powershellスクリプトの一部がExchange 2007スナップインを読み込むことです。何らかの理由で、GUIを使ってスクリプトを実行すると、プラグインが見つからないというエラーが表示されます。

基本的にPowershellを起動するコードは次のとおりです。今、私はので、私はそれについて間違った道を進んですることができ、それが混乱の笑のビットであるかもしれない全くコーダないよ:)

Process p = new Process(); 

p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler); 

// Redirect the output stream of the child process. 
p.StartInfo.CreateNoWindow = false; (false for testing) 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardInput = false; //(false for testing) 
p.StartInfo.RedirectStandardOutput = false; //(false for testing) 
p.StartInfo.RedirectStandardError = false; //(false for testing) 
p.StartInfo.LoadUserProfile = true; 
p.StartInfo.FileName = "This points to a file on a network share" @"\\server\folder\file"; 

p.Start(); 
p.BeginOutputReadLine(); 

上のボタンをクリックした後に起こるとに出力されます私はそれがすべて働いているGUI内のテキストボックス。しかし、今のところ私は物事の側面を無効にしてPowershellのエラーを見ることができます。

「Microsoft.exchange.management.powershell.admin」を次のように

だからPowerShellでのエラーメッセージは、私は手動でスクリプトを実行した場合

しかし、再び、このコンピュータにインストールされていないですGUIがなければ正常に動作します。 GUIのように、実行中のコンピュータにアクセスできないクローズドな環境でGUIを起動しています。私はC#アプリケーションを作成することについて実際には考えていないので、何か単純なものが欠けていると思っています。

+0

私はテストとして、ローカルコンピュータに移動するが、それがないように、同じ問題を取得しようとしたように、PowerShellスクリプトをネットワーク共有に位置していたが私が作った小さなGUIプログラムは、独自のインスタンスで実行されていて、ローカルユーザーのレジストリ設定にアクセスできないため、Exchangeスナップインをロードできないようです。 – MichaelS

答えて

0

OK私は問題を解決したと思います。

Powershellスクリプトを起動するために私が何をやっていたのかよく説明しておきました。基本的には、上記のコードを使用して.batファイルを起動し、そのバットファイルを実行したときに何らかの理由でそれを実行すると、上記のエラーが発生します。

私は小さなプログラムを使用して、exeファイルに変換し、常に管理者として実行するように設定しました。これで問題は解決され、スクリプトは正しく実行されます。

理由はわかりませんが、ローカルユーザープロファイルにアクセスできないbatファイルを起動すると、その詳細がローカルユーザーレジストリに格納されているため、Powershell Exchangeスナップインを読み込めませんでした。

解決策は、私のGUIがPowershellスクリプト用に起動したバットファイルをEXEファイルに変更することでした。わからない理由ですが、それは動作します:)

おかげ マイケル・スミス

関連する問題