问题标签 [logoff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
520 浏览

c# - 以 SYSTEM 身份运行并注销用户“USER” Pin

我有一个作为计划任务运行的程序。该程序在 XP 上作为 SYSTEM 运行。这个想法是程序将在后台运行,而 USER 处于活动状态。

当特定情况发生时,我需要程序注销用户。

我尝试使用:

但这似乎没有注销用户。

我想也许它正在注销 SYSTEM,因为它以 SYSTEM 身份运行。

我怎样才能登录用户?

谢谢,夏日灯泡。

0 投票
2 回答
12489 浏览

windows - 添加注销脚本

我有一些脚本,我想在每次用户注销时运行。我想创建以编程方式设置注销脚本的东西。例如,可执行 exe 或 cmd 文件以将注销脚本添加到 Windows 执行的注销脚本列表中。因此,最好使用 Windows API 函数或 Windows shell 命令,但我找不到这样的函数或命令来帮助解决这个问题。

我检查了本地组策略编辑器在您使用它向组策略添加注销脚本时所做的注册表编辑,但它做了很多我不确定我可以模仿的事情。例如,它进行了大量的注册表编辑,它在一些注册表项中使用数字代码,在一些值中使用二进制数据。我不知道这些值代表什么。

我已经尝试了 GPEdit 所做的更改的子集,希望这样做仍然有效。例如,我将它所做的更改导出到 HKCU\Software\Policies\Microsoft\Windows\System\Scripts\Logoff 并将它们导入另一台 PC,但这不起作用,GPEdit MMC 甚至不知道我已经做了改变。

正如我所说,如果有人知道一些可以提供帮助的 Windows API 函数或 Windows shell 命令将是更可取的,但如果有人知道以我可以模拟的方式解码 GPEdit 生成的信息堆的方法那么我不反对进行注册表更改,只要它们是稳定的。

无论我找到和使用哪种解决方案,它都必须能够自动且可靠,因为它将通过 psexec 对许多计算机远程执行,并且还将包含在未来已设置的 PC 的自动设置过程中。

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

如果有人是 Windows 注册表或 MMC 向导,并且认为看到 GPEdit MMC 在执行相同操作时所做的注册表更改转储会有所帮助,那么就这么说吧,我会提供它,因为我已经捕获了它。我怀疑这是要走的路,但是我已经开始研究如何创建 MMC 管理单元工具;我的想法是,也许 GPEdit 管理单元本身可以进行逆向工程,这样我就可以以一种简单的方式准确地看到它在做什么。不过,这不会很快发生,因为我看到的所有 .adm 文件似乎都没有为此设置,并且 gpedit.msc 文件似乎没有任何可以在明文部分泄露它的东西,尽管有是其中的一部分,看起来像乱码,所以也许那里有某种魔法。

0 投票
3 回答
18437 浏览

windows - 如何从 vbscript 注销?

我正在使用 VBScript 在我的 Win Server 2003 上运行应用程序,我希望它在一段时间后将用户注销。类似于以下内容:

0 投票
2 回答
844 浏览

c++ - 在 Windows 下,如何识别当前控制台用户,然后对该用户进行注销?

我需要 C++ 代码在从管理员进程调用时注销控制台用户的能力,或者如果它被该用户调用,并且将来可能是 Windows 服务。我遇到的问题是 ExitWindowsEx 只会注销调用它的用户。如果管理员进程调用注销,则控制台用户不受影响。我所知道的唯一可以执行此操作的应用程序是 psShutdown.exe,除了 psShutdown 只能由管理员运行。有谁知道在 C++ 中如何识别控制台用户,然后对该用户进行注销?psShutdown 里面有什么魔力?我正在寻找适用于 WindowsXP 及更高版本的东西。我也不能使用 WMI,因为有些机器正在运行 windows Embeded 并且没有 WMI。

(psShutdown.exe 必须以管理员身份运行的原因是因为它安装了一项服务,而普通用户无权执行此操作。)

0 投票
1 回答
13497 浏览

c# - 从服务中注销 Windows 中的交互式用户

我正在尝试找出一种方法来从用 C# 编写的 Windows 服务中注销本地 Windows 会话中的用户。

这是问题的背景:我需要管理一组用户的计算机使用时间;当他们分配的时间到期时,我想注销他们。这是在 W2K8 域的上下文中。不幸的是,Windows 中的登录时间控制只是断开用户与服务器资源的连接。无法通过此方法强制他们的会话终止。

我的方法是构建一个跨域部署的 Windows 服务;该服务将在每台客户端计算机上运行。该服务将定期枚举计算机上的登录用户,调用数据库以将自上次调用以来的登录时间添加到当天的总数中,如果已达到最大值,则将其注销(五分钟警告)。注意 - 这些不是终端服务会话,它们是常规的本地交互式登录。另请注意,由于 Win7 和 Vista 中的“切换用户”功能,一台机器上可能有多个登录。我所有的客户端 PC 都将运行 Win7。Windows 服务将作为本地系统运行,因此权限应该不是问题。

我可以使用 WMI 按用户名成功构建机器上的登录用户列表。这是该代码的片段:



但是,我正在努力寻找一种允许我注销选定用户会话的方法。我知道我可以关闭机器,但我不希望这样 - 这会杀死所有用户的会话。

有什么想法吗?感谢您阅读这篇冗长的帖子!

0 投票
4 回答
1975 浏览

applescript - 防止对话框防止用户注销?

我们有一个用applescript 编辑器制作的简单.app,当用户登录时会弹出一个显示对话框。问题是许多用户忽略了该框并且不按“确定”关闭它。如果它保持打开状态,它将阻止用户注销计算机。

有什么方法可以防止对话框阻止注销过程?

0 投票
1 回答
507 浏览

visual-c++ - 如何计算 Windows 用户登录的时间(VC++)

我正在编写一个 Windows 服务来进行家长控制(Visual C++)。

我遇到以下问题:

  • 如何计算 Windows 用户今天登录的时间(时间以小时为单位)
  • 当每天的时间超过指定值(例如 5 小时)时,如何触发用户 Windows 帐户的注销。

任何帮助表示赞赏。
问候!

0 投票
4 回答
1359 浏览

c++ - 如何捕获从 Windows 服务启动的会话注销

我有一项服务会不断检查某些应用程序并确保它没有关闭。如果此应用程序关闭 - 服务将再次启动它。

当用户决定注销会话时,问题就开始了。在注销期间,所有应用程序都将关闭,包括我的应用程序。但该服务仍在运行并不断尝试再次启动它。

问题是如何通知服务用户将要注销并且不再需要重新启动应用程序?我尝试使用 SERVICE_CONTROL_SESSIONCHANGE 通知来实现它。但是根据 MSDN,当所有应用程序都已经关闭并且注销程序完成时,它们才会提供服务。对我来说太晚了。有没有办法以编程方式找出当前会话正在注销?

我的服务在 LocalSystem 帐户下启动。

谢谢。

ps 我无权访问应用程序源代码。目标需要在不修改的情况下实现。

0 投票
2 回答
2907 浏览

vbscript - 用户会话超时强制注销

我一直在研究如何使用 vbs 或批处理制作脚本,以便为登录到通过组策略链接的特定计算机集的用户设置会话时间限制。我不熟悉注销或定时脚本,我可以制作最简单的批处理脚本来将当前用户从机器上注销。我遇到的问题是由于时间限制无法设置定时会话或运行注销脚本。我研究了通过组策略设置它,然后想出了在启动时为特定计算机组上的用户将脚本链接到组策略的想法。我通过谷歌搜索关键字找到了一个 vbs,但我不确定如何使用注销脚本来实现它或如何让它开始倒计时

我计划使用的注销脚本大致如下:

但我无法显示评论,并且 30 秒时间不生效。

任何帮助将不胜感激。感谢您的阅读。

0 投票
3 回答
3238 浏览

session - 在 DNN 5.x 中注销如何工作?

我们看到 DNN 中没有放弃会话的问题。我不确定这是否是 4.5.x 问题,因为我们不久前升级到 5.x 并且可能引用了旧控件。

我们在模块中引用的登录/注销控件是 DotNetNuke.UI.Skins.Controls.Login,位于路径 DNN_Web_Root/admin/Skins/login.ascx

在那里,它看起来像重定向到 logoff.aspx,然后通过 LogoffHttpHandler,然后去某个地方完成注销过程但是我找不到该过程在哪里查看是否正在调用 Session.Abandon。

任何人都可以回答以下问题:

  • DNN 是否存在在注销时未调用 Session.Abandon 的问题?
  • 实际处理 LogOff 进程的进程是什么?