Мне кажется, что диалог действительно открывается просто отлично, но он находится за окном консоли PowerShell. К сожалению, он не отображается на панели задач, поэтому нет никаких указаний на то, что он есть, если вы не переместили окно powershell или Alt + Tab. Также кажется, что обходной путь ShowHelp для меня не повлиял.
EDIT Вот как это сделать, используя идею вторичной формы. Основная идея заключается в создании новой формы, которая открывает OpenFileDialog изнутри события Shown. Ключ вызывает активацию в форме перед тем, как открыть диалог, чтобы форма появилась на передней панели, и появится диалоговое окно. Я переместил форму за кадром, установив для местоположения внеэкранное значение, но вы также можете установить Form.Visible = $ false изнутри события Shown.
[void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
$ofn = New-Object System.Windows.Forms.OpenFileDialog
$outer = New-Object System.Windows.Forms.Form
$outer.StartPosition = [Windows.Forms.FormStartPosition] "Manual"
$outer.Location = New-Object System.Drawing.Point -100, -100
$outer.Size = New-Object System.Drawing.Size 10, 10
$outer.add_Shown({
$outer.Activate();
$ofn.ShowDialog($outer);
$outer.Close();
})
$outer.ShowDialog()
Если кто-то заинтересован, это то, что я использовал его для: http://stackoverflow.com/questions/182573/powershell-cli-or-gui-which-do-you- нуждаются или предпочитают # 216936 – 2008-10-19 20:42:00