Простая замена для Xp_cmdshell

Тема в разделе "SQL", создана пользователем alex2345, 31 янв 2008.

Статус темы:
Закрыта.
  1. alex2345

    alex2345 Гость

    Простая замена для xp_cmdshell
    С возможностью раздачи прав на доступ.
    Код (Text):
    declare @iShl int, @iStm int, @iStdOut int, @iLine int, @hr int, @EndOfStream int,
    @strText nvarchar(4000), @cmd nvarchar(4000)
    set @cmd = 'Exec("cmd /c ping -n 3 -w 1000 www.ru")'
    EXEC @hr = sp_OACreate 'Wscript.Shell', @iShl OUT
    EXEC @hr = sp_OAMethod @iShl, @cmd, @iStm out
    EXEC @hr = sp_OAGetProperty @iStm, 'StdOut', @iStdOut out
    EXEC @hr = sp_OAGetProperty @iStdOut, 'AtEndOfStream', @EndOfStream out
    WHILE @EndOfStream = 0 BEGIN
    EXEC @hr = sp_OAGetProperty @iStdOut, 'ReadLine', @strText out
    print @strText
    EXEC @hr = sp_OAGetProperty @iStdOut, 'AtEndOfStream', @EndOfStream out
    END
    EXEC @hr = sp_OADestroy @iShl
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Хвастаешься?
     
  3. alex2345

    alex2345 Гость

    Sorry,
    тестировал на SQL 2000. Там всё работает без дополнительных настроек.

    В SQL 2005 нужно выполнить:

    Код (Text):
    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ole Automation Procedures', 1;
    GO
    RECONFIGURE;
    GO
     
  4. alex2345

    alex2345 Гость

    analogue xp_cmdshell
    замена для xp_cmdshell
    ---------------------------------------------------------------------
    Windows 2000: need Windows Script 5.6 for Windows XP and Windows 2000
    Windows 2003: included
    ---------------------------------------------------------------------
    MSSQL2000 :
    nothing, Ole Automation Procedures enabled

    MSSQL2005 :
    Код (Text):
    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ole Automation Procedures', 1;
    GO
    RECONFIGURE;
    GO

    MSSQL2008 :
    [url=http://msdn2.microsoft.com/en-us/library/ms191188(SQL.100).aspx]http://msdn2.microsoft.com/en-us/library/m...8(SQL.100).aspx[/url]
    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ole Automation Procedures', 1;
    GO
    RECONFIGURE;
    GO
    ---------------------------------------------------------------------
    declare @iShl int, @iStm int, @iStdOut int, @hr int, @EndOfStream int,
    @strText nvarchar(4000), @cmd nvarchar(4000)
    set @cmd = 'Exec("cmd /c ping -n 3 -w 1000 127.0.0.1")'

    EXEC @hr = sp_OACreate 'Wscript.Shell', @iShl out
    EXEC @hr = sp_OAMethod @iShl, @cmd, @iStm out
    EXEC @hr = sp_OAGetProperty @iStm, 'StdOut', @iStdOut out
    EXEC @hr = sp_OAGetProperty @iStdOut, 'AtEndOfStream', @EndOfStream out
    WHILE @EndOfStream = 0 BEGIN
    EXEC @hr = sp_OAGetProperty @iStdOut, 'ReadLine', @strText out
    print @strText
    EXEC @hr = sp_OAGetProperty @iStdOut, 'AtEndOfStream', @EndOfStream out
    END
    EXEC @hr = sp_OADestroy @iShl
    ---------------------------------------------------------------------
    Keywords: xp_cmdshell, faq, howto, problem, error, alternative, command line, cmd
    проблема, как обойти, ошибка
    ---------------------------------------------------------------------

    Модератор:Не забывайте про оформление поста!
     
  5. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    Первый бот прорвался через защиту! Хреново.. Не у всех людей получается, а тут бот смог.. мда.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей