有没有一种好的方法可以通过命令行、WMI、COM 或其他方式(甚至是 Win32)在 Windows XP 和 Windows 7 中自动安装本地启动(而不是登录)脚本?
我需要在大量计算机上设置本地启动脚本,但不幸的是,Active Directory 绝对不是一个选项。我想编写一个可以在每台计算机上运行的脚本或小程序来执行启动脚本安装,以便省去大量容易出错的点击式手动操作。
我发现,当使用gpedit.msc
创建本地启动脚本时,有关该脚本的信息会存储在注册表中:
HKLM\Software\Policies\Microsoft\Windows\System\Scripts\Startup
但是,如果您创建了这样的脚本,然后删除了它的注册表项,该脚本仍将列在本地组策略编辑器中;就像 Windows 中经常出现的情况一样,显然那里发生的事情比看上去的要多。这让我怀疑在这里手动添加新启动脚本的子项是否安全(例如,我不希望我的脚本被后来使用本地组策略编辑器所做的更改覆盖)...
我想到的另一种选择是在任务计划程序中创建一个配置为在系统启动时运行的项目。但是,我对此的担忧有两个方面:
能否更轻松地实现自动化?例如,该
at
命令似乎不允许您安排系统启动任务,并且 WMI 的Win32_ScheduledJob
界面看起来不可靠(例如,它无法显示我当前安排的任何任务)。我是否能够阻止用户登录,直到计划的启动任务完成,就像使用“正常”的 Windows 启动脚本一样?
提前感谢任何建议,我一直在为此绞尽脑汁......
答案1
创建在系统启动时触发的计划任务。使用 SCHTASKS.EXE 自动执行此操作。您想要的计划类型是 ONSTART。
答案2
尝试将 C:\Windows\System32\GroupPolicy 中的两个文件夹复制到新计算机,然后重新启动并运行gpupdate /force
如果您想尝试计划任务方式,请使用Schtasks
。它比更强大at
,可以让您选择登录选项。但是,它不会等待它完成后再登录。
答案3
我从来没有找到一个干净的解决方案。下面的方法很麻烦,但它对我的目的有用:
http://www.office-outlook.com/outlook-forum/index.php/m/626059