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

Discussion in 'ASP General' started by Me, Nov 30, 2004.

  1. Me

    Me Guest

    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....
     
    Me, Nov 30, 2004
    #1
    1. Advertising

  2. 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" <> wrote in message
    news:...
    > 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....
     
    Aaron [SQL Server MVP], Nov 30, 2004
    #2
    1. Advertising

  3. Me

    Me Guest

    "Aaron [SQL Server MVP]" <> wrote in message news:<u9#>...
    > 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?
     
    Me, Nov 30, 2004
    #3
  4. 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" <> wrote in message
    news:...
    > "Aaron [SQL Server MVP]" <> wrote in message

    news:<u9#>...
    > > 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?
     
    Aaron [SQL Server MVP], Nov 30, 2004
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. m3ckon

    asp.net xp_cmdshell

    m3ckon, Sep 30, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    609
    Scott Allen
    Sep 30, 2004
  2. darrel
    Replies:
    2
    Views:
    4,053
    darrel
    Mar 2, 2005
  3. Replies:
    1
    Views:
    1,060
    enricoe
    Dec 17, 2005
  4. Pedro Vera
    Replies:
    5
    Views:
    446
    Juan T. Llibre
    Mar 30, 2007
  5. Prasath

    Execute permission denied on 'stored procedure' dbo

    Prasath, Oct 13, 2004, in forum: ASP .Net Web Services
    Replies:
    0
    Views:
    306
    Prasath
    Oct 13, 2004
Loading...

Share This Page