Powershell in CMD-batch?
Ich baue gerade vorhandene Powerhellscripte, die ich nutze, in eine Batch ein.
Warum? Weil die Menüstruktur in der Btch schon superumfangreich ist und die Lösung im PS (mir) zu keomplex ist.
Ich habe gelesen, dass man die Powershell Befehle einfach in der CMD ausführen kann, habe aber das Thema, dss die
a) nicht in der Batch ausgeführt werden, bzw. sich meine Batch einfach schliesst
b) die Notation eine FEhlermeldung bringt, die mir "so" nichts sagt...
Fehlermeldung:
Als "Alternative" habe ich auch schon eine einfache Sprache gesucht, die evtl. die codeschnipsel aus Batch und Powershell "einfach" in einer GUI ausführen... COBOL hilft mir aber hier nix... Das könnte ich
Danke für Ideen/Feedbacks
Chris
Warum? Weil die Menüstruktur in der Btch schon superumfangreich ist und die Lösung im PS (mir) zu keomplex ist.
Ich habe gelesen, dass man die Powershell Befehle einfach in der CMD ausführen kann, habe aber das Thema, dss die
a) nicht in der Batch ausgeführt werden, bzw. sich meine Batch einfach schliesst
b) die Notation eine FEhlermeldung bringt, die mir "so" nichts sagt...
Orginal .PS1:
Remove-NetFirewallRule -DisplayName "__NXTServer" -Direction Inbound
Remove-NetFirewallRule -DisplayName "__NXTServer" -Direction Outbound
Umsetzung in .bat
powershell -EP ByPass -noexit -C "Remove-NetFirewallRule -DisplayName "__NXTServer" -Direction Inbound"
powershell -EP ByPass -noexit -C "Remove-NetFirewallRule -DisplayName "__NXTServer" -Direction Outbound"
Warnung: PowerShell hat erkannt, dass Sie möglicherweise eine Sprachausgabe verwenden und PSReadline aus Kompatibilitätszwecken deaktiviert haben. Wenn Sie es erneut aktivieren möchten, führen Sie „Import-Modul psReadline” aus.
Remove-NetFirewallRule : Der Parametersatz kann mit den angegebenen benannten Parametern nicht aufgelöst werden.
In Zeile:1 Zeichen:1
+ Remove-NetFirewallRule -DisplayName __NXTServer -Direction Inbo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-NetFirewallRule], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Remove-NetFirewallRule
Als "Alternative" habe ich auch schon eine einfache Sprache gesucht, die evtl. die codeschnipsel aus Batch und Powershell "einfach" in einer GUI ausführen... COBOL hilft mir aber hier nix... Das könnte ich
Danke für Ideen/Feedbacks
Chris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43358535273
Url: https://administrator.de/contentid/43358535273
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
2 Kommentare
Neuester Kommentar
Moin.
Und bei der Nutzung von Anführungszeichen im PS Code sollten diese mittels Backslash escaped werden oder eben Hochkommas um Strings im Powershell Code benutzen
oder
Gruß pp.
-Direction Inbound
Der Parameter ist bei Remove-NetFirewallRule nicht gültig! Deswegen auch die eigentlich eindeutige FehlermeldungDer Parametersatz kann mit den angegebenen benannten Parametern nicht aufgelöst werden.
Und bei der Nutzung von Anführungszeichen im PS Code sollten diese mittels Backslash escaped werden oder eben Hochkommas um Strings im Powershell Code benutzen
@echo off
powershell -EP ByPass -noexit -C "Remove-NetFirewallRule -DisplayName '__NXTServer'"
@echo off
powershell -EP ByPass -noexit -C "Remove-NetFirewallRule -DisplayName \"__NXTServer\""
Gruß pp.
per DOS ein Powershell Script ausführen:
einfach diese Zeile mit angepassten Pfaden in eine .bat Datei reinsetzen und fertig.
und in die .ps1 Datei also Powershell Script legst du die Befehle rein die Powershell Befehle sind...
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -executionpolicy Unrestricted -File "c:\PowerShellScript.ps1"
einfach diese Zeile mit angepassten Pfaden in eine .bat Datei reinsetzen und fertig.
und in die .ps1 Datei also Powershell Script legst du die Befehle rein die Powershell Befehle sind...