Термин "EXEC" не распознается как имя командлета Powershell.

У меня есть пакет SSIS dtsx, который я хочу запустить с помощью PowerShell. Ниже приведено то, что я запускаю в powershell.

EXEC xp_cmdshell '"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" /f "F:\SqlExport\New package.dtsx"'

К сожалению, я получаю ошибку ниже, и я не знаю, почему

EXEC: термин "EXEC" не распознается как имя командлета, функции,
файл сценария или работоспособная программа. Проверьте правильность написания имени или, если путь
был включен, проверьте, что путь правильный и попробуйте снова.
В строке:1 символ:1
+ EXEC xp_cmdshell '"C:\Program Files\Microsoft SQL Server\130\DTS\Binn ...
+ ~~~~
    + CategoryInfo: ObjectNotFound: (EXEC:String) [], CommandNotFoundException
    + FullyQualifiedErrorId: CommandNotFoundException

Я включил xp_cmdshell в SQL Server, используя команду ниже, а

1 ответ

Решение

EXEC xp_cmdshell является оператором T-SQL для запуска команд оболочки черезcmd.exe,

Я предполагаю, что намерение PowerShell выполнить команду, которая начинается с исполняемого пути "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe"запускается из вашего скрипта T-SQL черезEXEC xp_cmdshell[1].

Вместо этого ваше сообщение об ошибке подразумевает, что PowerShell выполнил всю строку, что, как и ожидалось, не удалось: PowerShell не имеет EXEC команда (и в вашей системе нет внешней программы с таким именем).

Тем не менее, PowerShell здесь не нужен, и он не будет входить в картину, если ваш EXEC xp_cmdshell Строка была выполнена SQL Server (через скрипт T-SQL).

Фактически, ваша команда T-SQL должна работать как есть (вызов внешней программы с аргументами через cmd.exe), если правильно выполняется SQL Server.


[1] Обновление: если целью является просто запустить команду из PowerShell

& "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" /f "F:\SqlExport\New package.dtsx"`

Обратите внимание на необходимость &оператор вызова, чтобы сообщить PowerShell, что следующая строка в двойных кавычках - это имя исполняемого файла, который нужно вызвать.

Другие вопросы по тегам