467,911 Members | 1,499 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 467,911 developers. It's quick & easy.

Trying to Execute a file using exec master.dbo.xp_cmdshell, from ASP

Me
hi, I have this file I need to execute from an ASP client. since we
have installed it on the SQL Database server machine, I thought I
could run it
like this:
Set Cn = CreateObject("ADODB.Connection")

Cn.CursorLocation = adUseClient
Cn.ConnectionTimeout = 0
Cn.Open sConnString
Cn.Errors.Clear

If Not Cn.State = adStateOpen Then
m_sErrorData = "No active connection"
Exit Function
End If

Set Rs = CreateObject("ADODB.Recordset")
set Rs = Cn.Execute("exec master.dbo.xp_cmdshell
'C:\serverdir\test.exe usr/ProfileXXX YYY"
But, when I try this, it only works if I remove the parameter
usr/ProfileXXX YYY from the command. If I keep it, it just hangs on
the .execute command.

Strangely enough, If I try to run the same command (with the
parameter) on
the SQL Query analyzer (with the same user connection that the ASP
client uses)
it works... ( I know it works because execution proceeds to the next
line after Cn.Execute, and I get back a recordset in Rs with line
results from the executable (see below).
I have also tried to run the executable with the exec
master.dbo.xp_cmdshell command from within a stored procedure (and
then execute it from ASP)
same results. Runs only from Query analyzer...

By the way I am not doing this on ther server but on a remote machine.
Shouldn't matter though, because with Query analuyzer it does work.

I think it can only have something to do with the inclusion of the
parameter and its effects.

if the executable is run with it in query analyzer, the result in the
output grid is:

(one grid result line for each text line)

Starting Link-Run ...
0 Lines Processed out of 0
0 Elements Created with 0 Errors
NULL

(this result is ok)

but if I run it without the parameter:
Usage: 'C:\serverdir\test.exe User[/Profile] Code
NULL

I can't figure it out.

Thanks for any help....
Jul 22 '05 #1
  • viewed: 7684
Share:
3 Replies
You're running it in Query Analyzer as YOU, however the ASP page is likely
running in the context of IUSR, which has a different set of security
credentials.

--
http://www.aspfaq.com/
(Reverse address to reply.)


"Me" <he****@lycos.com> wrote in message
news:2d**************************@posting.google.c om...
hi, I have this file I need to execute from an ASP client. since we
have installed it on the SQL Database server machine, I thought I
could run it
like this:
Set Cn = CreateObject("ADODB.Connection")

Cn.CursorLocation = adUseClient
Cn.ConnectionTimeout = 0
Cn.Open sConnString
Cn.Errors.Clear

If Not Cn.State = adStateOpen Then
m_sErrorData = "No active connection"
Exit Function
End If

Set Rs = CreateObject("ADODB.Recordset")
set Rs = Cn.Execute("exec master.dbo.xp_cmdshell
'C:\serverdir\test.exe usr/ProfileXXX YYY"
But, when I try this, it only works if I remove the parameter
usr/ProfileXXX YYY from the command. If I keep it, it just hangs on
the .execute command.

Strangely enough, If I try to run the same command (with the
parameter) on
the SQL Query analyzer (with the same user connection that the ASP
client uses)
it works... ( I know it works because execution proceeds to the next
line after Cn.Execute, and I get back a recordset in Rs with line
results from the executable (see below).
I have also tried to run the executable with the exec
master.dbo.xp_cmdshell command from within a stored procedure (and
then execute it from ASP)
same results. Runs only from Query analyzer...

By the way I am not doing this on ther server but on a remote machine.
Shouldn't matter though, because with Query analuyzer it does work.

I think it can only have something to do with the inclusion of the
parameter and its effects.

if the executable is run with it in query analyzer, the result in the
output grid is:

(one grid result line for each text line)

Starting Link-Run ...
0 Lines Processed out of 0
0 Elements Created with 0 Errors
NULL

(this result is ok)

but if I run it without the parameter:
Usage: 'C:\serverdir\test.exe User[/Profile] Code
NULL

I can't figure it out.

Thanks for any help....

Jul 22 '05 #2
Me
"Aaron [SQL Server MVP]" <te*****@dnartreb.noraa> wrote in message news:<u9**************@TK2MSFTNGP14.phx.gbl>...
You're running it in Query Analyzer as YOU, however the ASP page is likely
running in the context of IUSR, which has a different set of security
credentials.


but, (as I mentioned) I made sure that the Query analyzer connection uses
the same SQL login/pass as the ASP client connection....

what other login is there?
Jul 22 '05 #3
Get Filemon:
http://www.sysinternals.com/ntw2k/source/filemon.shtml

If you run this while trying with each method, you should see the
difference.

--
http://www.aspfaq.com/
(Reverse address to reply.)


"Me" <he****@lycos.com> wrote in message
news:2d**************************@posting.google.c om...
"Aaron [SQL Server MVP]" <te*****@dnartreb.noraa> wrote in message

news:<u9**************@TK2MSFTNGP14.phx.gbl>...
You're running it in Query Analyzer as YOU, however the ASP page is likely running in the context of IUSR, which has a different set of security
credentials.


but, (as I mentioned) I made sure that the Query analyzer connection uses
the same SQL login/pass as the ASP client connection....

what other login is there?

Jul 22 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Bego?a | last post: by
10 posts views Thread by bdwgarth | last post: by
6 posts views Thread by mcolson | last post: by
3 posts views Thread by tprizler | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.