当机器重新启动时,在用户登录之前,是否会运行在帐户(系统/服务/网络服务)下运行的所有服务?
JD。
答案 0 :(得分:4)
服务具有为每个服务定义的“启动类型”,这些类型为boot, system, auto, demand, disabled.
服务还具有相互依赖关系,在注册表中定义。
具有boot
和system
启动类型的服务在只有NT Native二进制文件可以运行的时间段内启动(Win32 API尚未就绪)。例如,这些服务包括csrss.exe
,它提供了一些Win32 API。
初始化Win32后,将启动启动类型为automatic
的服务。在此期间,允许用户登录的服务运行 - 这将显示登录提示并允许用户登录。
在每种情况下,如果正在启动的服务取决于其他服务,则其他服务将提前启动。
所以,是的,用户可以在执行服务之前登录。但是,如果登录服务依赖于您的服务......但是,如果您检测到您的服务已启动,则更好。考虑使用CreateEvent()api命名的全局事件。您的服务会创建事件,您的应用程序在调用服务之前等待事件。此外,您的应用只能在使用时使用ServiceControl API启动服务。
Windows“Services.msc”管理插件隐藏了boot
和system
服务。要了解有关这些启动类型的更多信息,请参阅此API文档:MSDN: ChangeServiceConfig Function。
答案 1 :(得分:0)
是,使用(默认情况下)内置Windows帐户。在“服务(运行services.msc)”中,有一个“登录为”列,告诉用户该服务以“。”登录。
答案 2 :(得分:0)
我不这么认为。这应该是异步的。如果您足够快地登录,一些服务仍将出现。这不包括“系统”服务