组策略批处理脚本在启动时未运行

组策略批处理脚本在启动时未运行

作为一家公司,我们购买了新的防病毒软件,并希望通过组策略将其安装到我们所有的计算机上。

安装程序是一个 .exe 文件,并且我们提供了一个在启动时使用的 .bat 文件,但我注意到该脚本并没有运行(大多数时候)。

我尝试解决问题,并部分修改了脚本以记录运行时的情况,这让我发现问题不在于脚本本身,而在于脚本甚至没有运行

@echo off
For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%b-%%a)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
ECHO [%mydate%_%mytime%] %USERNAME%  sophos script run>>"\\server11\client_install\Sophos\Client\Logger.txt"

SET MCS_ENDPOINT=Sophos\Management Communications System\Endpoint\McsClient.exe
IF "%PROCESSOR_ARCHITECTURE%" == "x86" GOTO X86_PROG
IF NOT EXIST "%ProgramFiles(x86)%\%MCS_ENDPOINT%" GOTO INSTALL
exit /b 0

:X86_PROG
IF NOT EXIST "%ProgramFiles%\%MCS_ENDPOINT%" GOTO INSTALL
exit /b 0

:INSTALL
ECHO [%mydate%_%mytime%] %USERNAME%  sophos installation>>"\\server11\client_install\Sophos\Client\Logger.txt"
pushd \\server11\client_install\Sophos\Client
SophosSetup.exe --quiet
Popd

脚本没有任何问题,每个人都有文件和文件夹的读取权限。并且出于测试目的,每个人都有 Logger.txt 的写入权限。

最让我困惑的是,这个脚本有时会运行。该策略已与 3 个组织单位相关联,总共包含 40 台计算机(一些笔记本电脑,一些台式机)。今天早上有 2 台计算机运行了该脚本,但今天至少有 30 台计算机启动了该脚本。

我对服务器和组策略还很陌生,所以下面提到和尝试的一切对我来说都是新的。

我尝试过的事情:

  1. 将其更改为在登录时而不是启动时运行脚本(并将策略链接到存储用户的 OU)
  2. 启用“异步运行启动脚本”
  3. 将批处理文件存储在与 .exe 相同的文件夹中
  4. 将批处理文件存储在策略提供的文件夹中
  5. 检查了gpresult(可以看到策略)
  6. 将启动更改为在启动后 0 分钟运行
  7. 将启动程序改为在启动后 30 分钟后运行

服务器是 Windows Server 2012 R2,所有计算机都运行 Windows 10 Pro (1803)

当前设置: 政策截图

答案1

默认情况下,工作站在启动时不会等待网络,因此脚本执行的阶段通常在网络初始化时就已经过去了。

组策略管理控制台:

计算机 > 管理模板 > 系统 > 登录
计算机启动和登录时始终等待网络:已启用

此外,您应该复制安装程序本地并从本地文件夹执行。

相关内容