临时性的解决方法是先映射--1.映射
exec master..xp_cmdshell 'net use z: \\192.168.1.100 "密码" /user:192.168.1.100\administrator'
-- 然后再删除
Exec master..xp_cmdshell 'del \\192.168.1.100\test\aa.txt' -- 最后把映射删除掉
exec master..xp_cmdshell 'net use z: /delete'

解决方案 »

  1.   

    这种方法不需要修改任何配置, 但是每次处理的时候都要进行映射, 而且密码是明文传递的
    如果你这个操作是经常进行的, 则修改配置最为恰当:
    在你的数据库服务器和 192.168.1.100上面都建立一个同名同密码的用户(权限配置简单起见, 给予管理员权限, 当然, 安全角度出发, 这是不推荐的)
    然后修改mssqlserver服务(控制面板--管理工具--服务)属性, 把服务启动用户设置为刚才建立的用户.
    然后重启mssqlserver服务使修改生效.
    这样你的xp_cmdshell就能直接删除了.
      

  2.   

    我也遇到类似问题,在把表数据导出到csv文件的时候,
    调用exec xp_cmdshell 'dtexec /dts "\File System\***.dtsx"'后,
    报错说对该csv文件拒绝访问。也能像上面的方法解决吗?
      

  3.   

    提示"发生系统错误 67。" 还有"找不到网络名。",
    应该检查你的映射有没有写错.遇刺是调用net use去做的, 你可以在操作系统的命令提示符下去测试好net use可用时, 才搬到xp_cmdshell中来.