Zum Inhalt springen
  • 0

PowerShell Fenster bei Skriptausführung unterdrücken


michi.wtr

Frage

Hallo zusammen,

ich habe mir mal ein kurzes Skript in PowerShell geschrieben, um Dateien ein wenig zu bearbeiten. Was genau das Skript macht ist eigentlich nicht wichtig...
Um das Ausführen des Skripts benutzerfreundlicher zu machen, habe ich im regedit zum Kontextmenü für Dateien einen Button hinzugefügt, der wenn ich diesen klicke das Skript mit 2 Argumenten ausführt. Dazu habe ich unter dem command-Schlüssel in der Zeichenfolge (Standard) folgenden Wert festgelegt:

"[Pfad der powershell.exe Datei]" -File "[Pfad des Skripts]" "[Argument1]" "[Argument2]"

Es funktioniert auch alles wunderbar, jedoch kommt jedes mal wenn ich auf den Kontextmenü Button klicke ein nerviges blaues Fenster. Ich denke das hängt mit dem Start von PowerShell zusammen, man sieht auch kurz die Befehle des Skripts durchflitzen, was jetzt nicht stört, da das Skript sowieso fast ein Einzeiler ist, das Fenster im gesamten nervt jedoch schon .

Interessant ist, wenn ich denselben Befehl (Wert des command-Schlüssels) in die CMD eingebe, dann wird das Skript ausgeführt ohne dieses Fenster (ich denke weil die CMD ja dann das PowerShell Fenster ist, da wenn man PowerShell über die CMD startet öffnet sich auch kein extra Fenster, sondern PS läuft dann über die CMD).
Ich habe schon bei meinen Suchen im Netz ein paar Beiträge gefunden, bei einem davon war die Lösung das Skript einfach via Batch-Datei auszuführen, was ich jedoch nicht sehr elegant finde.... Auch folgenden Befehl einfach ans Anfang des Skripts zu kopieren hilft nicht, da er das PowerShell-Fenster schließt wenn man es mit diesem ausführt, jedoch wird mir beim ausführen des Skripts über das Kontextmenü trotzdem das Fenster angezeigt, da ich ja PowerShell auch dafür erstmal starten muss:

$window = Add-Type -memberDefinition @"
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
"@ -name "Win32ShowWindowAsync" -namespace Win32Functions -passThru

$window::ShowWindow((Get-Process –id $pid).MainWindowHandle, 0)



Kann ich meinem Wert für den command-Schlüssel noch irgendwie Argumente mitgeben um diesen PowerShell-Start unsichtbar zu machen? Habe es schon probiert mit:

"[Pfad der powershell.exe Datei]" -WindowsStyle Hidden -File "[Pfad des Skripts]" "[Argument1]" "[Argument2]"
"[Pfad der powershell.exe Datei]" -ExecutionPolicy Bypass -File "[Pfad des Skripts]" "[Argument1]" "[Argument2]"

da ich diese Befehle auch gelesen hatte. Auch dies war aber leider Erfolglos....


Vielen lieben Dank schonmal im Voraus,
Micha

Link zu diesem Kommentar
Auf anderen Seiten teilen

2 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
Am 18.8.2022 um 07:33 schrieb FlareForce:

in unseren Script verwenden wir "-windowstyle hidden" beim aufruf, schau dir das mal an! (bei uns startet ein .bat eine ps1, leider historisch gewachsen ;D)

Hey, vielen Dank für die Antwort, in einem anderen Forum wurde mir geraten das PS-Skript mit einem VB Skript zu starten. Dies funktioniert auch einwandfrei, jedoch habe ich nun als einzige Änderung erhalten, dass mir mein großes Blaues Fenster zwar nicht angezeigt wird, wenn ich das PS Skript via Button im Kontextmenü starte, jedoch erhalte ich nun durch ausführen der .vbs Datei ein kleineres schwarzes Fenster, welches etwas kürzer angezeigt wird, hat mir im Endeffekt also nichts geholfen 😕. Ist das ganze anders beim Start mit einer .bat Datei? Denn wenn mir auch da wieder ein Fenster angezeigt wird, dann kann ich mir das ganze auch sparen.

Bzw. funktioniert das ganze überhaupt via Batch Datei? Kenne mich dafür leider noch zu wenig aus, und im anderen Forum (Administrator.de) wurde mir gesagt, wenn ich das PS-Skript automatisch bei einem von mir angelegten Feld im Kontextmenü des Explorers (mit Hilfe des regedit) ausführen möchte ohne dieses nervige große blaue Fenster, dann wäre ein VBS meine einzige Möglichkeit.

Wie wäre denn der Befehl eine Batch Datei im regedit mit 2 (oder mehr) Argumenten auszuführen, dann könnte ich das ganze mal ausprobieren :) .

Vielen Dank schonmal im Voraus,

Micha

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...