2017-06-09 14 views
1

GUIを使用してデータを表示したり、データを取得するためのwindows.formsを使用するシンプルなPowerShellスクリプトがあります。 PowerShellを使用して実行すると動作しますが、CMDでは動作しません。実行するためのWindowsのPowerShellスクリプトをバッチファイルで実行することができません

[System.Windows.MessageBox]::Show('message','Step 1','YesNoCancel','Question') 

バッチファイル: はここに.ps1という例である私が手

powershell "&{start-process powershell -ArgumentList ' -noprofile -file c:\temp\gui.ps1' -verb RunAs} exit $LASTEXITCODE" < NUL 

Thの誤差がある:タイプ[System.Windows.MessageBox]を見つけることができません。 異なるコンテキストで動作するCMDとアセンブリをロードする必要があるので、CMDコマンドからロードしようとしましたが、それでも同じエラーが発生することがわかりました。

powershell "&{[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); start-process powershell -ArgumentList ' -noprofile -file c:\temp\gui.ps1' -verb RunAs} exit $LASTEXITCODE" < NUL 

エラー: enter image description here 任意のアイデア?

答えて

0

あなたはこのような何かを試みることができる:

PowerShell -NoProfile -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\temp\gui.ps1""' -Verb RunAs}"; Exit $LastExitCode 

これは、私はそれを把握

+0

コマンドを使用しても同じエラーが発生する –

+0

完全なコマンドで回答を更新しました。お気軽にお試しください。 – Compo

+0

エラーのあるスクリーンショットを追加しました。 –

0

OK完全にテストされていません。 PowerShellスクリプトで問題が発生しました。 代わりに[System.Windows.MessageBox]を使用しました。これは、バッチファイルを変更せずに動作します

[System.Windows.Forms.MessageBox]::Show('message','Step 1','YesNoCancel','Question') 

:後

[System.Windows.MessageBox]::Show('message','Step 1','YesNoCancel','Question') 

:前フォーム .MessageBox] 。

おかげで、

0

は、バッチファイルに次のように実行してみてください:

powershell -command [System.Windows.Forms.MessageBox]::Show('message','Step 1','YesNoCancel','Question') 

あなたが他の質問がある場合、私は、これは便利であると思い、下記のコメントしてください。

関連する問題