2017-01-06 4 views
1

Ich habe den folgenden Code, der einem Benutzer ermöglichen sollte, einen Ordner Speicherort für eine bestimmte Datei auszuwählen, und ich werde diesen Speicherort dann verwenden, um die Datei zu bearbeiten. Wenn ich das Skript jedoch außerhalb der ISE ausführe, wird der FolderBrowserDialog überhaupt nicht angezeigt. Ich habe hinter das Powershell-Fenster und hinter alle anderen Fenster geschaut und es erscheint nie.FolderBrowserDialog wird überhaupt nicht angezeigt, wenn außerhalb von ISE ausgeführt

Add-Type -AssemblyName System.Windows.Forms 
$FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog 
$FolderBrowser.Description = "Description" 
$FolderBrowser.ShowNewFolderButton = $false 
$FolderBrowser.RootFolder = 'MyDocuments' 
if($FolderBrowser.ShowDialog() -eq $true){ 
    Do some stuff 
} 

Irgendwelche Gedanken darüber, warum es nicht auftauchen könnte? Gibt es bestimmte Powershell-Einstellungen, die aktiviert werden müssen, damit etwas von der Konsole angezeigt wird?

+0

Nicht in der Lage zu reproduzieren. Was genau meinst du mit "außerhalb der ISE"? –

+0

In der ISE wird das Dialogfeld angezeigt, aber nur PowerShell-Konsole öffnen, um das Skript auszuführen, wird es nicht angezeigt – Sam

+0

Verwenden Sie PowerShell v2? '$ PSVersionTable.PSVersion' – sodawillow

Antwort

3

Ich hatte dieses Problem zuvor in PS v2, hier ist, wie ich es behoben habe.

Speichern Sie den Code in einer PS1-Datei und es wie folgt aus:

powershell -STA -File "path/to/file.ps1" 

ISE v2 läuft in STA und Konsole v2 läuft in MTA.

Weitere Informationen: Could you explain STA and MTA?

+0

Das war es. Ich war auf PS v2 – Sam

Verwandte Themen