我有一个 Java 应用程序,它使用 CMD 执行 .bat 文件,该文件在运行后会创建一个文件。该脚本在 Windows 2012 中成功执行,但在 Windows 2016 中却执行失败!我在两个 Windows 服务器上都授予了“以批处理作业身份登录”用户权限。
在 win2016 中: - 如果没有提供凭据,则脚本将成功运行,但会抛出错误,提示输出文件正在被另一个进程使用!
-如果提供了凭证,并且凭证是域管理员或本地管理员,则脚本不会执行并抛出错误 0;此外,Windows 事件日志会显示 cmd 错误。
-如果凭证作为内置管理员提供,则脚本将成功运行而不会出现任何问题。
我在这里遗漏了什么?有人知道吗?
答案1
UAC 的 GPO 策略配置不正确。它需要以下内容:
-用户帐户控制:管理员批准模式下管理员的提升提示行为 - 无需提示即可提升
-用户帐户控制:以管理员批准模式运行所有管理员 - 已禁用