本エントリは、
Differences between the ISE and PowerShell console | PowerShell Team Blog
の内容をまるっと翻訳というか要約というかした感じの内容です。
古い情報もあったのでその辺は更新しています。
中の人が誰かWindows PowerShell Blogの翻訳もやってくれると嬉しいのですが...
PowerShell ISEとPowerShellコンソール(powershell.exe)の違い
1. PowerShell ISEではコンソールアプリケーションの実行が制限されています。
PowerShell ISEからcmd /k [ほげほげ]なコマンドを実行するとハングします。
ハングしたらCtrl+CやCtrl+Breakで復帰させてください。
cmd /c [ほげほげ]なコマンドは実行可能です。
詳細は Console Application (Non) Support in the ISE をみてください。
2. PowerShell ISEではコンソールアプリを実行した際の出力に色が付きません。
PowerShell ISEとpowershell.exeで以下のコードを実行してみるとわかります。
powershell.exe -command { Write-Host "Greenだよ" -ForegroundColor green; }


3. PowerShell ISEはデフォルトでSTAです。
PowerShell 2.0まではpowershell.exeはMTAでした。
PowerShell 3.0からはpowershell.exeもSTAがデフォルトになっています。
$Host.Runspace.ApartmentState
を実行するとスレッドアパートメントモードを確認することができます。
STAだとSTAが、MTAだとUnknownが返されます。
4. PowerShell ISEでは[Console]クラスがサポートされません。
例えばISEで[Console]::BackgroundColor = 'white'を実行すると変更が反映されないのがわかります。
一般的にスクリプト内部では[Console]クラスを直接使わずHost API(Write-Hostなど)を使う様にすべきです。
5. PowerShell ISEでは $Host.UI.RawUI クラスは限定的にサポートされます。
ColorとTitleのみがサポートされます。
ISEでは$psISE.Optionsを使う方がより多くの項目に対して色を指定できます。
6. PowerShell ISEではMoreコマンドはカスタマイズされています。
で書いた様にPowerShell ISEではOut-Host -Pagingはエラーとなりmoreファンクションもページ処理をしません。
7. PowerShell ISEではStart-Transcriptコマンドレットが動作しません。
これはPowerShell 5.0からはサポートされる様になりました。
細かい話はぎたぱそ先生のブログを見てください。
ただ手元のWindows 8.1(PowerShell 4.0)な環境では普通にStart-Transcriptが使えています...この辺の事情はちょっとよくわかりません。
---- 2015/10/09追記 ----
PowerShell 4.0な環境でもKB3000850を適用するとISEでStart-Transcriptが使える様です。
---- 追記ここまで ----
8. PowerShell ISEではスレッドのカルチャの扱いが異なります。
コンソールをサポートしないカルチャ(例えばアラビア語)の場合、ISEではGet-Cultureの結果がar-SAとなり、powershell.exeではGet-Cultureの結果がen-US (もしくは他のフォールバックされたカルチャ)となります。
9. PowerShell ISEではコマンド名のサジェスト機能が動作しません。
例えばpowershell.exeからC:\Program Files\Internet Explorerディレクトリでiexplore.exeを呼び出した場合、以下の様にコマンドが無いエラー(.\iexplore.exeと呼ぶ必要がある)が出るものの、iexplore.exeは同じディレクトリあるとのサジェストが表示されます。

サジェストは下の部分、
Suggestion [3,General]: コマンド iexplore.exe は見つかりませんでしたが、現在の場所に存在します。
Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。
このコマンドを信頼する場合は、".\iexplore.exe" と入力してください。
詳細については、"get-help about_Command_Precedence" と入力してヘルプを参照してください。
PowerShell ISEではこのサジェスト機能が動作しません。

10. PowerShell ISEはPowerShellコンソールと異なるプロファイルで動作します。
PowerShell ISEのプロファイルはMicrosoft.PowerShellISE_profile.ps1に記述します。
powershell.exeのプロファイルはMicrosoft.PowerShell_profile.ps1です。
プロファイルの詳細については以下の記事を参照してください。
http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx
http://www.leeholmes.com/blog/TheStoryBehindTheNamingAndLocationOfPowerShellProfiles.aspx
http://www.leeholmes.com/blog/2006/04/26/the-story-behind-the-naming-and-location-of-powershell-profiles/
ちなみに$profile.CurrentUserAllHostsのプロファイルはPowerShell ISE、Powershell.exe両方で使えます。
11. PowerShell ISEでのみ$psISE変数が使えます。
powershell.exeには$psISE変数は存在しません。
http://psisecream.codeplex.com/ や http://blogs.msdn.com/powershell/archive/2008/12/29/powershell-ise-can-do-a-lot-more-than-you-think.aspx を見てみてください。
また、以下の様にして$psISE変数の存在を確認することができます。
ls variable: | ? { $_.name -eq "psISE" }