与this question类似,运行以下代码后,浏览器对话框会显示所有正确的按钮,但缺少通常显示可用文件夹的选择区域:
[void] [Reflection.Assembly]::LoadWithPartialName( 'System.Windows.Forms' )
$d = New-Object Windows.Forms.FolderBrowserDialog
$d.ShowDialog( )
答案 0 :(得分:11)
我在前一段时间遇到此问题,并在MSDN论坛上找到以下COM解决方法:
$app = new-object -com Shell.Application
$folder = $app.BrowseForFolder(0, "Select Folder", 0, "C:\")
if ($folder.Self.Path -ne "") {write-host "You selected " $folder.Self.Path}
答案 1 :(得分:3)
我认为在MTA线程中运行PowerShell是个问题。您可以在STA(单线程单元)模式下运行版本2的CTP,它将启动正确的文件夹选择。它确实将菜单拉到shell窗口后面。
答案 2 :(得分:0)
仅供参考,如果您正在寻找Windows窗体的东西,目前有一款产品可用于PowerShell的Windows窗体(Admin Script Editor),而Sapien正在开发Forms Designer(已宣布)在PowerScripting Podcast)上,这可能会为您的脚本解决其中一些问题。