无法通过共享运行 .bat 文件,但可以通过 cmd 运行

无法通过共享运行 .bat 文件,但可以通过 cmd 运行

我在 Linux 机器上设置了一个 smb 共享,可以在资源管理器中查看:

\\XXX.YYY.ZZZ.QQQ\分享

此共享中有一个批处理文件:

\\XXX.YYY.ZZZ.QQQ\共享\Scripts\Script.bat

我可以从资源管理器中在记事本中打开该文件,右键单击“编辑”,甚至编辑该文件。

如果我双击资源管理器中的批处理文件,或者桌面上有该文件的快捷方式,我最初会收到“打开文件 - 安全警告”提示,但是当我单击“运行”时,我会收到一条错误消息:

Network Error

Windows cannot access \\\\XXX.YYY.ZZZ.QQQ\Share\Scripts\Script.bat

You do not have permission to access \\\\XXX.YYY.ZZZ.QQQ\Share\Scripts\Script.bat. 
Contact your network administrator to request access.

奇怪的是,如果我打开一个cmd窗口并简单地输入"\\\\XXX.YYY.ZZZ.QQQ\Share\Scripts\Script.bat"脚本,它就会毫无问题地运行。

答案1

从 Samba 4 开始,文件的执行权限被强制执行。Windows 客户端的旧行为是无论如何都允许执行。Windows 实际上在执行文件和读取文件时打开文件的方式略有不同 - 这就是您可以毫无问题地打印文件的原因。

设置文件的执行权限或将此选项添加到共享:

acl allow execute always

这将恢复允许任何可执行文件运行的旧行为。

此错误报告更多细节。

相关内容