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, что следующая строка в двойных кавычках - это имя исполняемого файла, который нужно вызвать.