用户成功退出特定应用程序时注销

时间:2012-09-13 18:06:58

标签: windows-7

我想在成功退出特定应用程序时从其Windows会话中注销用户 我们来看以下用例:
1. John Doe登录其Windows会话
2.他打开Windows WordPad文本编辑器("特定应用程序的示例")并添加一些文本
3.他成功保存并退出申请 4. John Doe将自动从其Windows会话中注销

我想找到一个使用Windows标准机制的解决方案 我已经尝试使用本地组策略,事件查看器和任务计划程序的组合来查找解决方案。但是,我无法触发特定应用程序的事件

这是我的(不成功)尝试:

本地组策略
1.打开本地计算机政策> Windows设置>安全设置>地方政策>审核政策节点
2.打开审核流程跟踪属性策略
3.选中成功复选框,然后点击确定以验证
4.执行 GPUpdate / Force 以应用新策略

事件查看器
1.启动写字板并成功退出(正如John Doe所做的那样)
2.查看事件查看器> Windows日志> Windows事件查看器中事件的安全性日志 3.找到事件后,右键单击它并选择将任务附加到此事件...
4.到达操作向导页面,选择启动程序选项,然后单击下一步
5.使用以下选项填写该字段程序/脚本:关闭添加参数(可选):/ l / f / t 10

主要问题是成功流程终止事件ID:4689 适用于所有不仅成功退出写字板流程的应用程序!

是否可以仅在写字板终止进程上触发?

1 个答案:

答案 0 :(得分:1)

通过'将任务附加到此事件',答案是否定的。但是,您可以通过logonscript或注册表在登录时运行以下脚本。

strComputer = "."

Set objWMIService = GetObject("winmgmts:{(Security)}\\" & _
        strComputer & "\root\cimv2")

Set colEvents = objWMIService.ExecNotificationQuery _    
    ("Select * From __InstanceDeletionEvent WITHIN 1 Where " _
        & "TargetInstance isa 'Win32_Process'")

Do
    Set objEvent = colEvents.NextEvent.TargetInstance
    cmdLine = objEvent.CommandLine
    if InStr(LCase(cmdLine), "wordpad.exe")  then
       wscript.Echo("Wordpad exited. Logging off...")
       Set WshShell = WScript.CreateObject("WScript.Shell")
       WshShell.Run "logoff" 

    end if 

Loop