启动后自动登录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的主要内容,如果未能解决你的问题,请参考以下文章
如何让windows开机自动运行一个bat文件,并且当用户登录后还能看到这个bat文件的控制台窗口?
登录后如何在Windows-Start-Up上自动运行第三方Windows 10 Store App