在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!

时间:2022-05-25 08:58:36
SQLSERVER2008,在配置分发服务器的时候,出现如下错误,求解,试过很多方法都无解。如开启xp_cmdshell、权限等。
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!

14 个解决方案

#1


需具体看环境

#2


分发数据库是分发哪个数据库?在什么路径下?
订阅数据库的目录路径对应文件夹是否存在

#3


引用 2 楼 u011015550 的回复:
分发数据库是分发哪个数据库?在什么路径下?
订阅数据库的目录路径对应文件夹是否存在


分发数据库是分发db1库,数据文件和日志文件路径在D:\db1\data\2015。

分发数据库的数据文件夹和日志文件夹是:D:\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data

快照文件夹:D:\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\ReplData

注:所有的目录都是存在的

#4


引用 1 楼 lvcheng606717 的回复:
需具体看环境


你指的是什么环境呢?

#5


大概是权限的问题。
不要用sa登录,而是改用Windows身份验证登录试试。

#6


引用 5 楼 Tiger_Zhao 的回复:
大概是权限的问题。
不要用sa登录,而是改用Windows身份验证登录试试。


你说的这个方法也试过,还是不行。我执行xp_cmdshell 'dir c:'都提示:执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5。我把xp_cmdshell禁用后,再执行这个又提示:SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

#7


引用 2 楼 u011015550 的回复:
分发数据库是分发哪个数据库?在什么路径下?
订阅数据库的目录路径对应文件夹是否存在

有什么办法可以使xp_cmdshell 'dir c:'执行显示出结果呢?我估计把这个搞定问题应该就解决了。现在执行是提示:执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5

#8


到控制面板的服务中,把SQL Server服务的启动帐户从NetworkService更改为LocalSystem(或者直接用本地系统帐户)。
重启服务。

#9


引用 8 楼 Tiger_Zhao 的回复:
到控制面板的服务中,把SQL Server服务的启动帐户从NetworkService更改为LocalSystem(或者直接用本地系统帐户)。
重启服务。

这个我昨天也试过,下面是我服务的启动方式截图。
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!

#10


A)把其它 SQL Server 的服务都改为 LocalSystem 吧。不确定具体用到哪个服务。
B)把那个目录设为EveryOne可用。

#11


引用 10 楼 Tiger_Zhao 的回复:
A)把其它 SQL Server 的服务都改为 LocalSystem 吧。不确定具体用到哪个服务。
B)把那个目录设为EveryOne可用。

这方法也试过了,还是不行。我现在不用复制了,改用数据库链接解决问题了,多谢。

#12


在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!
8楼的意思 应该是 “SQL Server 配置管理器” 里面的服务登录身份更改为LocalSystem,你这个截图是windows系统服务里面的服务使用用户,两个地方是不一样的,你再仔细看下,

#13


引用 12 楼 jkjzq 的回复:
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!
8楼的意思 应该是 “SQL Server 配置管理器” 里面的服务登录身份更改为LocalSystem,你这个截图是windows系统服务里面的服务使用用户,两个地方是不一样的,你再仔细看下,
好像看错了,是一样的;

#14


我也遇到了类似问题。不过幸运的是,我在开发的服务器上是好的,但是在用户的服务器上运行时遇到了这个问题。两台服务器上的SQL SERVER 都是2005,操作系统都是 WINDOWS SERVER 2008。由于数据库都是我自己安装的,安装选项完全一样。但是用户的服务器操作系统不是我安装的,所以我直接怀疑是用户服务器上的安全设置问题。
对比了两台服务器的安全设置,最后找到问题所在:
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!
只要把“网络安全:LAN管理器身份验证级别”双击打开,选择“发送 LM 和 NTLM 响应”(原来是“没有定义”)。确认后,重新启动服务器,该问题即能解决。

#1


需具体看环境

#2


分发数据库是分发哪个数据库?在什么路径下?
订阅数据库的目录路径对应文件夹是否存在

#3


引用 2 楼 u011015550 的回复:
分发数据库是分发哪个数据库?在什么路径下?
订阅数据库的目录路径对应文件夹是否存在


分发数据库是分发db1库,数据文件和日志文件路径在D:\db1\data\2015。

分发数据库的数据文件夹和日志文件夹是:D:\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data

快照文件夹:D:\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\ReplData

注:所有的目录都是存在的

#4


引用 1 楼 lvcheng606717 的回复:
需具体看环境


你指的是什么环境呢?

#5


大概是权限的问题。
不要用sa登录,而是改用Windows身份验证登录试试。

#6


引用 5 楼 Tiger_Zhao 的回复:
大概是权限的问题。
不要用sa登录,而是改用Windows身份验证登录试试。


你说的这个方法也试过,还是不行。我执行xp_cmdshell 'dir c:'都提示:执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5。我把xp_cmdshell禁用后,再执行这个又提示:SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

#7


引用 2 楼 u011015550 的回复:
分发数据库是分发哪个数据库?在什么路径下?
订阅数据库的目录路径对应文件夹是否存在

有什么办法可以使xp_cmdshell 'dir c:'执行显示出结果呢?我估计把这个搞定问题应该就解决了。现在执行是提示:执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5

#8


到控制面板的服务中,把SQL Server服务的启动帐户从NetworkService更改为LocalSystem(或者直接用本地系统帐户)。
重启服务。

#9


引用 8 楼 Tiger_Zhao 的回复:
到控制面板的服务中,把SQL Server服务的启动帐户从NetworkService更改为LocalSystem(或者直接用本地系统帐户)。
重启服务。

这个我昨天也试过,下面是我服务的启动方式截图。
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!

#10


A)把其它 SQL Server 的服务都改为 LocalSystem 吧。不确定具体用到哪个服务。
B)把那个目录设为EveryOne可用。

#11


引用 10 楼 Tiger_Zhao 的回复:
A)把其它 SQL Server 的服务都改为 LocalSystem 吧。不确定具体用到哪个服务。
B)把那个目录设为EveryOne可用。

这方法也试过了,还是不行。我现在不用复制了,改用数据库链接解决问题了,多谢。

#12


在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!
8楼的意思 应该是 “SQL Server 配置管理器” 里面的服务登录身份更改为LocalSystem,你这个截图是windows系统服务里面的服务使用用户,两个地方是不一样的,你再仔细看下,

#13


引用 12 楼 jkjzq 的回复:
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!
8楼的意思 应该是 “SQL Server 配置管理器” 里面的服务登录身份更改为LocalSystem,你这个截图是windows系统服务里面的服务使用用户,两个地方是不一样的,你再仔细看下,
好像看错了,是一样的;

#14


我也遇到了类似问题。不过幸运的是,我在开发的服务器上是好的,但是在用户的服务器上运行时遇到了这个问题。两台服务器上的SQL SERVER 都是2005,操作系统都是 WINDOWS SERVER 2008。由于数据库都是我自己安装的,安装选项完全一样。但是用户的服务器操作系统不是我安装的,所以我直接怀疑是用户服务器上的安全设置问题。
对比了两台服务器的安全设置,最后找到问题所在:
在执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码5!
只要把“网络安全:LAN管理器身份验证级别”双击打开,选择“发送 LM 和 NTLM 响应”(原来是“没有定义”)。确认后,重新启动服务器,该问题即能解决。