我已经Google,但还没有find答案。
情景:我的一个GPO有一个启动脚本需要很长时间才能完成。 出于某些原因,我们必须同步运行脚本。 当然,这会导致login屏幕出现之前的启动时间变慢(有时长达15分钟!)。
在对犯罪人脚本进行分析和分析后,我确定了要花费很长时间才能完成的步骤不会影响成功的GPO的结果。 换句话说, 那个特定的步骤(以及之后的所有步骤)都可以在后台运行。
我的问题: 即使启动脚本退出,启动脚本是否可以“触发”即将运行完成的另一个脚本/程序? 也就是说,即使启动脚本的过程结束,启动脚本的“subprocess”仍然存在?
附加信息:域控制器是2008和2008 R2的。 工作站是Windows XP。
很抱歉没有回答(我自己的问题)。
所以,这是我最终解决了我的问题。
在启动时,启动脚本创build一个at
作业。 由于启动脚本以SYSTEM身份运行,因此at
作业同样在SYSTEM权限下运行。 at
作业被configuration为在创build后运行2分钟。
at
作业中的命令是实际的工作负载脚本。 这会激发它应该做的任何有效载荷。 由于它作为一个计划的工作开始,它并不关心谁在当时login。
瞧! 任务完成 :-)
假设启动脚本是一个batch file:
CALL语句是在MS-DOS 3.3中引入的
它用于调用batch file中的其他batch file,而不中止调用batch file的执行,并为这两个batch file使用相同的环境。
在以前的工作中,面对类似的情况,我发现最好的解决scheme是为脚本创build一个包装程序来执行。 login脚本启动该程序,然后以低优先级模式运行真实脚本。
这样用户就不会受到影响,因为脚本的执行速度将由操作系统自动调整,具体取决于机器上运行的是什么。 创build这样的包装器当然不在本站的范围之内。
只是为了select,您也可以尝试将脚本放在GPO中:
计算机configuration\策略\pipe理模板\系统\login\用户login运行这些程序
要么
用户configuration\策略\pipe理模板\系统\login\用户login运行这些程序
指定Windows在用户login到系统时自动启动的其他程序或文档。
要为此设置指定值,请单击显示。 在“值”列的“显示内容”对话框中,键入可执行程序(.exe)文件或文档文件的名称。 要指定其他名称,请按ENTER,然后input名称。 除非文件位于%Systemroot%目录中,否则必须指定文件的完全限定path。
注意:此设置出现在“计算机configuration”和“用户configuration”文件夹中。 如果configuration了这两个设置,系统将在启动“用户configuration”设置中指定的程序之前启动“计算机configuration”设置中指定的程序。
另请参阅“不要处理遗留运行列表”和“不要处理运行一次列表”设置。