我有一些脚本,每次用户注销时我都想运行这些脚本。我想创建一些可以编程设置登录脚本的内容。例如,可以执行的EXE或CMD文件将记录脚本添加到Windows执行的登录脚本列表中。因此,Windows API函数或Windows Shell命令是可取的,但是我找不到这样的功能或命令可以帮助您。

我检查了当地组策略编辑器在使用该注册表编辑时使用的注册表编辑,当您使用该注册表将记录脚本添加到组策略时,但是它会做很多我不确定我是否可以模仿的事情。例如,它制作了许多注册表编辑,并且在某些值中使用了一些注册表键和二进制数据中的数字代码。我不知道这些值代表什么。

我尝试了GPEDIT所做的更改的子集,希望这样做仍然有效。例如,我导出了对HKCU software Policies Microsoft Windows windows System Scripts scripts logoff的更改,并在另一台PC上导入了它们,但这无效,GPEDIT MMC不知道我什至没有让我做到了。改变。

正如我所说,如果有人知道可以帮助您的一组Windows API函数或Windows Shell命令,那么最好是最好的那么,只要稳定,我就不会反对更改注册表。

无论我找到和使用什么解决方案,都必须能够自动且可靠,因为它将针对具有PSEXEC的许多计算机进行远程执行,并且还将包含在设置的将来PC的自动设置过程中。

不幸的是,对于Google来说,这似乎是一个困难的话题,因为人们试图做的许多其他事情都具有我询问的许多关键词,但实际上并不是同一主题。例如,用于运行应用程序的关闭/注销挂钩或远程记录用户。

如果任何人是Windows注册表或MMC向导,并且认为看到注册表的转储更改了GPEDIT MMC在做同一件事时所做的会有所帮助,然后就这么说,因为我已经捕获了这一点,因为我已经捕获了它。我怀疑这是要走的路,但是我已经开始研究如何创建MMC快照工具。我的想法是,也许GPEDIT快照本身可以进行逆向工程,以便我可以准确地以简单的方式看到它在做什么。但是,这并不快,因为我看到的一个.ADM文件似乎都没有为此进行设置,并且gpedit.msc文件似乎没有任何可以在纯文本部分中放出的文件,尽管那里这是一个看起来像Gibberish的部分,所以也许那里有某种魔术。

有帮助吗?

解决方案

任务调度程序可以像Windows Vista一样执行此操作。对于Windows XP和上一个,似乎没有一个很好的答案。 XP没有下面列出的“从用户会话中断开连接”。

Windows中有两个主要命令行实用程序,用于安排任务:at.exe和schtasks.exe。本身,似乎都没有提供您可以从GUI界面获得的所有选项(尽管Schtasks非常接近)。但是,任务调度程序具有描述计划任务的XML格式,并且Schtasks.exe具有从XML文件导入任务的选项。

要创建一个记录脚本,请创建一个XML文件,该文件描述要创建的任务。确保使用“从用户会话中断开连接”的触发器,然后从“任何用户”(需要提高特权)和“从本地计算机连接”中选择注销。设置所有所需的记录操作(例如您的登录脚本)作为任务操作。

微软有一个示例列表,用于为任务调度程序开发任务,包括XML示例。您可以找到此列表 这里.

另外,您可以使用GUI工具后设置任务,然后可以右键单击任务列表中的任务并选择“导出”。您将获得一个保存对话框,该对话框将允许您以XML格式保存任务。

然后,我用以下命令脚本将任务的设置脚本:

schtasks /create /tn "Task Name Here" /XML "path to xml file here" /ru domain\username /rp "password"

注意:部分信贷应访问User606602,以便使用任务调度程序,尽管他建议使用GUI应用程序,根据我的问题,该应用程序对此不起作用。我试图用他的建议的脚本版本编辑他的答案,然后接受,但同行评审拒绝了编辑。

其他提示

您不能只使用Windows任务调度程序启动脚本吗?

任务调度程序的较新版本(例如Windows Server 2008,Windows Vista/7)应允许您选项运行用户注销时触发的脚本。

这里

您需要做的就是创建一个新任务,然后创建一个新的触发器。从此窗口中,从下拉菜单中选择“从用户会话中断开连接”,然后选择要从“任务配置”窗口上的“操作”选项卡运行的脚本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top