XP_CMDSHELL调用VBS

zgren1979 2006-12-26 01:44:33
查询分析器中输入XP_CMDSHELL 'cscript c:\start.vbs'
效果是一直"显示执行批查询",就此档机...无法完成VBS调用...只有手工强行关闭查询分析器...
用户为SA,密码空.
环境为WIN2000PRO

在论坛查相关帖子,

找到http://community.csdn.net/Expert/topic/4677/4677406.xml?temp=.4337885

帖子中简单实列:↓

xp_cmdshell 'echo msgbox "asdf" >c:\a.vbs'
go
xp_cmdshell 'cscript c:\a.vbs'
go

VBS文件可以生成,但还是到调用的时候出现相同症状...

无法解决...请大家帮忙....
...全文
293 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgren1979 2006-12-27
  • 打赏
  • 举报
回复
多谢楼上了...我会继续研究下的....再次感谢指点
fcuandy 2006-12-27
  • 打赏
  • 举报
回复
很正常.
你如果a.vbs里用其它代码比如
dim a
那么执行是没有问题的.

但为什么用了 msgbox "aa" 就查询分析器假死了呢?原因很简单.

知道 b/s程序里服务器端程序为什么不能用 MessageBox.Show或 Msgbox吗?
因为如果允许的话,那么是服务器端执行,在服务器上弹出,需要专人守在服务器上点那个弹出框的确定,没人点的话,下面的语句就无法执行,所以ms就禁用了.

同样,你在 查询分析器中通过 系统存储过程执行了这样的操作后,进程执行了,但框(其实也就是个windows窗口)并没有在系统中绘制出来, 它一直等待着接收关闭命令(或者说消息循环中一直在等着那个消息),所以造成查询分析器假死(这个原理,我可能表述的不很清楚,但是你如果看过win32api里关于windows窗口的绘制及相关的那段原理那就不用我多说了). 打开任务管理器,结束cscript这个进程就可以了.
netcoder 2006-12-27
  • 打赏
  • 举报
回复
你那脚本里有些什么操作?
zgren1979 2006-12-26
  • 打赏
  • 举报
回复
2天了....各位....多谢了....

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧