christianriske
Goto Top

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...

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"  
Fehlermeldung:
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 face-wink

Danke für Ideen/Feedbacks
Chris

Content-ID: 43358535273

Url: https://administrator.de/contentid/43358535273

Ausgedruckt am: 24.11.2024 um 10:11 Uhr

12168552861
12168552861 21.03.2024 aktualisiert um 18:59:57 Uhr
Goto Top
Moin.
-Direction Inbound
Der Parameter ist bei Remove-NetFirewallRule nicht gültig! Deswegen auch die eigentlich eindeutige Fehlermeldung
Der 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'"  
oder
@echo off
powershell -EP ByPass -noexit -C  "Remove-NetFirewallRule -DisplayName \"__NXTServer\""  

Gruß pp.
ThePinky777
ThePinky777 22.03.2024 aktualisiert um 13:52:29 Uhr
Goto Top
per DOS ein Powershell Script ausführen:

"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...