В рамках процедур контроля версий (и автоматической установки) нашей базы данных мы должны иметь возможность запускать sqlcmd.exe для различных файлов .sql на странице ASP. Код, который я использую для этого:
Dim cmd : cmd = "sqlcmd -S " & DATABASE_SERVER & " -U " & DATABASE_UID & " -P " & DATABASE_PWD & " -d " & DATABASE_NAME & " -i """ & scriptPath & """ -b"
Dim wshShell : Set wshShell = Server.CreateObject("WScript.Shell")
Dim return : return = wshShell.Run(cmd, 0, True)
У меня есть код, работающий на моей машине для разработки (под управлением XP), но теперь, когда я развернул его на нашем сервере Windows 2003, у него возникли проблемы. Проблема в том, что возвращаемое значение всегда равно 1. Это также происходит, если я пытаюсь заставить его запустить пакетный файл или что-нибудь еще, о чем я могу подумать (если я изменяю значение для cmd на несуществующий файл, он взрывается как я и ожидал)
Я попытался добавить I_USR и I_WAM, чтобы иметь разрешения на выполнение как для sqlcmd.exe, так и для cmd.exe, но он по-прежнему возвращает 1. Если я открываю командную строку на сервере и выполняю «runas / user: servername \ i_usr sqlcmd.exe ", который работает нормально, но работает со страницы ASP, по-прежнему не работает.
Кроме того, при запуске сценариев .sql вручную все работает гладко, поэтому с ними проблем нет.
Есть ли какие-либо параметры безопасности на сервере, которые я забыл изменить в IIS или Windows, чтобы они работали?
Заранее спасибо интернету.