Подтвердить что ты не робот

Запустить файл .cmd через PowerShell

Я пытаюсь запустить .cmd файл на удаленном сервере с помощью PowerShell.

В моем .ps1 script Я пробовал это:

C:\MyDirectory\MyCommand.cmd

Это приводит к ошибке:

C:\MyDirectory\MyCommand.cmd is not recognized as the name of a cmdlet,
function, script file, or operable program.

И этот

Invoke-Command C:\MyDirectory\MyCommand.cmd

приводит к этой ошибке:

Invoke-Command : Parameter set cannot be resolved using the specified named
parameters.

Мне не нужно передавать какие-либо параметры в PowerShell script. Каков правильный синтаксис, который я ищу?

4b9b3361

Ответ 1

invoke-item будет искать обработчик по умолчанию для типа файла и сказать ему его запустить. Это в основном так же, как двойной щелчок по файлу в проводнике или с помощью start.exe.

Ответ 2

Попробуйте вызвать cmd /c C:\MyDirectory\MyCommand.cmd - это должно работать.

Ответ 3

Перейти к C:\MyDirectory
и попробуйте следующее:
PS C:\MyDirectory > .\MyCommand.cmd

Ответ 4

Чтобы запустить или преобразовать пакетные файлы в PowerShell (особенно если вы хотите подписать все запланированные сценарии задач с сертификатом), я просто создаю PowerShell script, например, deletefolders.ps1.

Введите следующие данные в script:

cmd.exe /c "rd /s /q C:\#TEMP\test1"

cmd.exe /c "rd /s /q C:\#TEMP\test2"

cmd.exe /c "rd /s /q C:\#TEMP\test3"

* Каждая команда должна быть помещена в новую строку, снова вызов cmd.exe.

Теперь этот script можно подписать и запустить из PowerShell, выводя команды в командную строку /cmd напрямую.

Это гораздо безопаснее, чем запуск пакетных файлов!