启动后自动登录windows

Posted

技术标签:

【中文标题】启动后自动登录windows【英文标题】:automatically login to windows after startup 【发布时间】:2013-11-14 10:54:29 【问题描述】:

我的一个客户使用任务管理器来触发(启动)一个进程来做某事。此流程包含一个 UI,并且需要始终是单个实例(已处理)。

从任务管理器一切运行顺利,如果您需要将任务管理器设置设置为:“无论用户是否登录都运行”(请在此处查看为什么这是一个问题的答案:http://social.technet.microsoft.com/Forums/en-US/c03d6691-b058-4f8d-961c-e8eba25bbaed/task-scheduler-problem-run-whether-user-is-logged-on-or-not

好的..没问题。我们只是让任务仅在用户登录时运行。仍然可以正常工作(即使计算机锁定)。

但是,今晚windows有更新,系统自动重启。用户的日志记录以及因此任务管理器无法运行任务。 :-(

由于程序有 UI(需要),我无法切换到“无论用户是否登录都运行”。 最佳做法是:

    以需要运行应用程序的用户身份再次登录 确保在用户登录时启动的应用程序实际上对用户可见? (解锁计算机)

我知道如何在 C# 中使用不同的用户凭据运行进程,但这不是解决此问题的方法。

在计算机启动时自动登录用户(并锁定计算机)会很棒。 这有可能吗?或者我的问题有其他解决方案吗?

问候,

马蒂斯

【问题讨论】:

【参考方案1】:

创建并安装Windows Service 来完成实际工作。该服务不需要登录用户,并且根据定义一次只运行一个实例,因此可以解决您的所有问题。

然后让UI communicate with the service through IPC 并让UI 应用程序start upon logon。

您当然也可以只使用let the user autologon,将程序的快捷方式放在启动文件夹中,然后在应用程序启动后调用LockWorkStation() 函数,但我不会采用也不推荐这种方法,因为它存在安全问题。

【讨论】:

我其实还希望有别的东西,但我有点“害怕”你的想法会是唯一正确的……太糟糕了……但还是谢谢 @user369122:你不应该太害怕这个答案。使用 Visual Studio 将应用程序编译为服务应该很容易。第一次编写客户端-服务器应用程序可能需要一些学习,但值得付出努力。 @赞恩。由于“害怕”,我更多地指出了在工作和 gui 方面削减整个项目的额外努力(和成本)。你是对的,创建服务并不难。 @ CodeCaster 我会和我的客户讨论这个问题,但我并不热衷于让周围的每个人都可以使用系统。 @CodeCaster 在登录时启动并结合 LockWorkStation() 对客户端很好。谢谢! ——【参考方案2】:

您可以在启动时自动登录到用户帐户:

http://technet.microsoft.com/en-us/magazine/ee872306.aspx

    单击“开始”,键入 netplwiz,然后按 Enter。 在“用户帐户”对话框中,单击要自动登录的帐户。如果可用,请清除“用户必须输入用户名和密码才能使用此计算机”复选框。 点击确定。 在“自动登录”对话框中,输入两次用户密码,然后单击“确定”。

下次重新启动计算机时,它会自动使用您选择的本地用户帐户登录。

【讨论】:

【参考方案3】:

以预定义用户身份自动登录 Windows 是单用户计算机或家用计算机的一项便捷功能。这消除了在安全环境中输入不必要的重复密码的麻烦,并加快了 Windows 启动和用户配置文件的预热。

但是,请永远不要忘记,这是一种安全漏洞,不应该在计算机上应用,这可能会落入敌对之手。

可以在HERE 获取有关该过程的详细说明,而不会弄乱 Windows 注册表。

【讨论】:

以上是关于启动后自动登录windows的主要内容,如果未能解决你的问题,请参考以下文章

Windows2008r2设置开机后用户自动登录

如何让windows开机自动运行一个bat文件,并且当用户登录后还能看到这个bat文件的控制台窗口?

登录后如何在Windows-Start-Up上自动运行第三方Windows 10 Store App

win10开机自动打开上次程序

让 WAMP 在 Windows 启动时自动启动(无需登录或任何 UAC 干扰)

Windows Server 2008 R2怎样设置自动登陆