Laufen ein .cmd-Datei mittels PowerShell
Ich versuche zu laufen eine .cmd-Datei auf einem remote-server mit PowerShell.
In meine .ps1-Skript habe ich versucht, dieses:
C:\MyDirectory\MyCommand.cmd
Es führt zu diesem Fehler:
C:\MyDirectory\MyCommand.cmd is not recognized as the name of a cmdlet,
function, script file, or operable program.
Und diese
Invoke-Command C:\MyDirectory\MyCommand.cmd
dieser Fehler führt:
Invoke-Command : Parameter set cannot be resolved using the specified named
parameters.
Ich brauche keine Parameter übergeben, um das PowerShell-Skript. Was ist die korrekte syntax, die ich Suche?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Invoke-Item
wird der Standard-handler für den Dateityp und sagen Sie es, um es auszuführen.Es ist im Grunde das gleiche wie ein Doppelklick auf die Datei im Explorer, oder mit
start.exe
.-Credential
parameter dieses Cmdlets..\MyCommand.cmd
von @GustavoASanchezVersuchen Sie es aufrufen
cmd /c C:\MyDirectory\MyCommand.cmd
– das sollte funktionieren.MyCommand.cmd
war in einem string in einer Variablen namens$myCmd
?$myCommandLineStr | cmd
. Das ist der workaround für die Vermeidung der Wahnsinn derInvoke-Item
.Gehen C:\MyDirectory und versuchen Sie, diese:
Ausführen konvertieren oder batch-Dateien in PowerShell (besonders, wenn Sie sich anmelden möchten alle Ihre geplanten task Skripten, die mit einem Zertifikat) ich habe einfach erstellen Sie ein PowerShell-Skript, zum Beispiel, deletefolders.ps1.
Geben Sie den folgenden in das Skript:
*Jeder Befehl muss auf einer neuen Zeile aufrufen cmd.exe wieder.
Dieses Skript kann jetzt unterzeichnet werden und ausführen von PowerShell-Ausgabe der Befehle an die Eingabeaufforderung /cmd direkt.
Es ist eine viel sicherere Weg, als die Ausführung von batch-Dateien!