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

Windows 7 当用户成功退出特定应用程序时注销,windows-7,Windows 7,当用户成功退出特定应用程序时,我想从其Windows会话注销该用户。 让我们以下面的用例为例: 1.John Doe登录到其Windows会话 2.他打开Windows写字板文本编辑器(一个“特定应用程序”的示例)并添加一些文本 3.他成功保存并退出应用程序 4.John Doe将自动从其Windows会话注销 我想找到一个使用Windows标准机制的解决方案。 我已经尝试使用本地组策略、事件查看器和任务调度器的组合来找到解决方案。但是,我无法为特定应用程序触发事件 以下是我的(未成功)尝试:

当用户成功退出特定应用程序时,我想从其Windows会话注销该用户。
让我们以下面的用例为例:
1.John Doe登录到其Windows会话
2.他打开Windows写字板文本编辑器(一个“特定应用程序”的示例)并添加一些文本
3.他成功保存并退出应用程序
4.John Doe将自动从其Windows会话注销

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

以下是我的(未成功)尝试:

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

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

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


是否可以仅在写字板终止过程中触发?

使用“将任务附加到此事件”回答是否。但是,您可以在登录时通过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

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

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

这个问题会得到更好的答案。这个问题会得到更好的答案