我正在尝试让一个非常简单的批处理脚本在 Windows 2008 Server (R2) 系统启动时运行。我已通过运行 将脚本添加到本地组策略中的“启动脚本” ,当我运行 时gpedit.msc
,我看到 下列出了该脚本,但该脚本并未执行。即使重新启动后, 中的“上次执行”列仍为空,并且脚本应创建的文件从未创建。Windows Settings/Scripts (Startup/Shutdown)/Startup
rsop.msc
rsop
目前,脚本的全部内容如下:
rem Check if this script is running.
date /t > c:\temp\flag
目标目录 ( c:\temp
) 存在。脚本名为c:\scripts\startup.bat
,如果我手动运行它,它会正常工作。
答案1
您应该获取 psexec 的副本并运行psexec -s path\to\script.bat
。这将以 System 身份运行它。这比以登录用户身份运行它是一种更准确的手动测试,因为启动脚本以 SYSTEM 身份运行。
答案2
检查注册表项 hklm\software\microsoft\windows\currentversion\run
如果尚未添加脚本,您可以在此处添加
http://www.akadia.com/services/windows_registry.html
否则,请检查文件夹的权限,以确保系统帐户具有写访问权限
答案3
为了使它为我工作(在 Windows Server 2012 上授予),我必须执行以下操作:
- 运行
gpedit.msc
,转到计算机配置> Windows 设置> 脚本,然后双击Startup
- 点击
Show Files
并将快捷方式粘贴到我的脚本在弹出的文件夹中 - 返回“启动属性”对话框,单击
Add
并Browse
选择您的快捷方式。 - 单击
OK
并重新启动。
快捷方式的粘贴是关键。浏览到 Scripts/Startup 文件夹之外的位置会导致无法正常工作。