300分关于远程重启服务器的问题!!(300分)

  • 主题发起人 主题发起人 道长
  • 开始时间 开始时间

道长

Unregistered / Unconfirmed
GUEST, unregistred user!
我调用ExitWindowsEx重新启动服务器(控制台程序,无窗体)

当在本机运行时没有问题,可是通过SQLServer的脚本命令

exec master..xp_cmdshell 'd:/myrestart.exe'时却不起作用

请高手指教!!
 
文档上说:
如果用户不是sysadmin角色,那么他运行在 SQLAgentCmdExec 账号下,这个账号可能没有权限重起机器
如果用户是sysadmin角色,那么xp_cmdshell运行在sqlserver本身的账号,缺省是本地管理员,但是你有没有改掉他啊
你也可以
DECLARE @result int
EXEC @result = xp_cmdshell 'dir *.exe'
PRINT @result
看看返回值是不是0,0才是成功
 
我得到的返回值如下:

驱动器 C 中的卷是 系统
卷的序列号是 64E9-B62C
NULL
C:/WINNT/system32 的目录
NULL
2000-01-11 04:00 150,800 accwiz.exe
......
2000-01-11 04:00 28,432 xcopy.exe
312 个文件 29,078,676 字节
0 个目录 6,395,351,040 可用字节
NULL

我在目标服务器上建立了跟登陆本机相同的账号、密码,且有Administrators权限,在SQL中
用此账号建立了Windows身份验证登陆,分配了角色(Sys Admin,Server Admin),返回结果不变
另外建了一个Sql登陆,分配了角色(Sys Admin,Server Admin),返回还是一样。

请Pipi解释一下“如果用户是sysadmin角色,那么xp_cmdshell运行在sqlserver本身的账号,缺省是本地管理员,但是你有没有改掉他啊”
是什么意思,我应该怎么配置远端登陆SQLServer的登陆。
 
哦,搞错了,搞成dir了,你要执行你的exe,看返回值是不是0
 
说点实际的东西吧,怎样才能让他返回0??
 
如果你是98是可以的,2000和nt 嘛你要找以前的文章,
 
多人接受答案了。
 
后退
顶部