1

当他成功退出特定应用程序时,我想从其 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. 使用以下选项填写字段程序/脚本:关闭添加参数(可选):/ l /f /t 10

主要问题是Event ID: 4689 for a successful Process Termination适用于所有成功退出的应用程序,而不仅仅是我的 WordPad 进程!

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

4

1 回答 1

1

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

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
于 2013-12-30T10:42:28.270 回答