无法从服务器运行批处理文件,用户无权访问文件

无法从服务器运行批处理文件,用户无权访问文件

我们正在尝试在服务器 2008r2 域控制器上运行一些登录/注销脚本。该脚本位于默认组策略注销目录中

\\domain.local\SysVol\domain.local\Policies\{guid}\User\Scripts\Logoff

注销时什么都没发生,所以我们最终意识到脚本根本没有运行。我将脚本复制到本地计算机并运行,它运行良好(常规经过身份验证的用户帐户)。

然后我尝试通过文件资源管理器访问该目录,我可以访问。但是我无法运行批处理文件。我收到错误

“Windows 无法访问(\文件的位置)您无权访问(\文件的位置)请联系您的网络管理员以请求访问权限。”

如果我右击并以管理员身份运行,它就可以正常工作。我没有提到批处理文件中的内容,因为这似乎并不重要。我以相同的方式创建了一个名为 test.bat 的登录脚本。它只包含

echo Hello
pause

同样,这在用户脚本文件夹中或任何共享中都不起作用。我将其放在我们文件服务器上的测试共享中,但出现了同样的错误。如果我通过命令提示符运行批处理文件,它也能正常工作。

此外,组策略正在应用,并且工作站事件查看器上没有错误日志。

最后,我尝试为我的域用户帐户授予对文件本身的更多权限,但仍然无法运行。只有域管理员可以运行该文件。

有什么想法吗?

答案1

将您的批处理文件移动到\\DomainController\Netlogon,然后在 GPO 中浏览到该路径并使用该 .bat 文件作为注销脚本。

这应该可以解决所有权限问题。

如果你有很多 DC,你可以将 GPO 中的批处理文件的路径设置为\\%LOGONSERVER%\NETLOGON\copyNinite.bat

然后,它将使用对其进行身份验证的任何 DC 作为批处理文件的路径,该路径应该是其站点本地的。

希望有所帮助。

答案2

对我来说,这听起来像是用户帐户控制文件系统虚拟化。作为实验,运行 useraccountcontrolsettings.exe 并将 UAC 设置为“从不通知”。重新启动并重新测试。如果您的脚本有效,那么它肯定是 UAC。

答案3

右键单击 BAT 所在的文件夹 -> 安全 -> 所有用户 -> 允许所有。同时检查那里列出的其他用户。也许这就是问题所在,因为我们也遇到过类似的问题。

相关内容