BAT 文件不会在 Windows 10 任务计划程序中运行,但会以管理员身份或在提升的命令提示符下运行
Posted
技术标签:
【中文标题】BAT 文件不会在 Windows 10 任务计划程序中运行,但会以管理员身份或在提升的命令提示符下运行【英文标题】:BAT file will NOT run in Windows 10 Task Scheduler but WILL run as Admin or in elevated comand prompt 【发布时间】:2020-02-05 23:48:54 【问题描述】:当我从提升的命令提示符或右键单击 -> 以管理员身份运行时,我的 BAT 文件(如下)运行完美。但是,当我将它放入我的 Windows 10 任务计划程序时,它不会运行。
我尝试过的: -- 任务的安全选项:我已经尝试过 SYSTEM 和域管理员帐户。 -- 我选择“以最高权限运行”。 -- 我在“配置为:”下拉列表中选择了“Windows 10”。 -- 在 EDIT ACTION 窗口中,我在“Start in (optional)”部分指定了 BAT 文件的位置 (c:\script) -- 在“程序/脚本”中,我尝试过“C:\scripts\script.bat”(不带引号)。我尝试仅列出“script.bat”(不带引号)。而且,我也尝试过“.\script.bat”(不带引号)。 -- 在尝试将文件复制到网络驱动器之前,我在 BAT 文件中创建了额外的行以将文件从 System32 目录复制到另一个(不太安全的)位置。 (我觉得这是不必要的,而且似乎对整体问题没有帮助。)
************************开始 BAT 文件******************
@Echo off
REM (maps network drive)
NET use Z: \\SERVER\PATH
REM (copies any archived security event viewer logs to the network)
IF EXIST "%SystemRoot%\System32\Winevt\Logs\Archive-Securit*.evtx" (
xcopy "%SystemRoot%\System32\Winevt\Logs\Archive-Securit*.evtx" c:\test\ /Y
xcopy "c:\test\Archive-Securit*.evtx" \\SERVER\PATH\%computername% /Y
REM (deletes files on the local machine after the files are verified to be on the network share)
FORFILES /p "Z:\PATH\%computername%" /c "cmd /c del %SystemRoot%\System32\Winevt\Logs\@file"
FORFILES /p "Z:\PATH\%computername%" /c "cmd /c del c:\test\@file"
) ELSE (
REM Do nothing
)
******************结束 BAT 文件******************
【问题讨论】:
这不是一个编程问题,它似乎涉及管理和可能的文件权限。投票结束,因为这属于不同的 SE 网站。 由于Z:
已映射到\\SERVER\PATH
,您为什么不在各自的XCopy
和ForFiles
命令中使用Z:\%ComputerName%
而不是\\SERVER\PATH\%computername%
和Z:\PATH\%computername%
?
Compo,我同意,要么应该工作。然而,在我的所有故障排除步骤中,我发现以管理员身份运行 bat 无法识别映射 z:\ 的 XCOPY 命令,并且 FORFILES 不会作为 \\server\path 运行。因此,无论出于何种原因,这种特殊的组合都有效。自从发现组策略条目是我的罪魁祸首后,我就没有尝试更改它。
【参考方案1】:
我发现了我的问题。组策略在计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 用户权限分配 -> “拒绝作为批处理作业登录”中有域管理员。
从此列表中删除域管理员并在计算机上运行 gpupdate 后,我能够在任务计划程序中成功运行 BAT(假设我在任务的安全选项中列出了域管理员用户)。
【讨论】:
以上是关于BAT 文件不会在 Windows 10 任务计划程序中运行,但会以管理员身份或在提升的命令提示符下运行的主要内容,如果未能解决你的问题,请参考以下文章
windows10计划任务启动bat执行jar打包的jar文件