Ich war fast fertig mit meinem Powershell-Skript, wenn nach einem Windows-Update glaube ich, mein Dialogfeld wurde gerade grau. Im Idealfall wird ein Dialogfeld geöffnet, in dem der Benutzer einen Dateipfad für die Zuordnung auswählt. Es funktioniert gut auf Server 2012.Powershell: Windows Server 2008 Ordner-Browser-Dialogfeld leer, aber nicht in ISE
Die seltsame Sache ist, dass es vollständig in der Powershell-ISE funktioniert, aber wenn das Skript einfach über Batch-Datei ausgeführt wird, funktioniert es nicht mehr. Hier ist der Code Brocken aus dem Skript:
Function Get-Folder($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
$foldername = New-Object System.Windows.Forms.FolderBrowserDialog
$foldername.rootfolder = "MyComputer"
if($foldername.ShowDialog() -eq "OK")
{
$folder += $foldername.SelectedPath
}
return $folder
}
Hier wird der Ausführungscode aus der Fledermaus-Datei:
start "" /d "C:\ASD\scripts" PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\ASD\scripts\PBridge.ps1""' -Verb RunAs}"
Ich bin wirklich nicht sicher, was falsch ist, aber ich bin Neigung zu einem Argumente in der Ausführung des Powershell-Skript durch die Batch-Datei, da es in der ISE funktioniert.
In Ihrem Ausführungscode sieht es so aus, als würden Sie PowerShell aus irgendeinem Grund zweimal aufrufen? Ist das beabsichtigt? – pabrams
Es wird nicht auf diese Weise ausgeführt, es führt eine Iteration aus. Der erste Start-Befehl startet Powershell in einem neuen Fenster, getrennt von der Batch-Datei, und ich glaube, der Befehl legt Parameter für Powershell fest, startet ihn aber nicht erneut. – hawkeye315