首页 > 解决方案 > 如何从 WindowsService 获取当前用户配置文件位置

问题描述

如果我从 WindowsService 中调用它:

var userPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

由于服务在系统级别运行,因此我将得到这些方面的信息:

C:\Windows\system32\config\systemprofile\

我感兴趣的是当前登录用户的用户配置文件。

C:\Users\username\

想法?

标签: c#

解决方案


通常,服务不会加载用户配置文件。您可以加载它(https://docs.microsoft.com/en-us/windows/desktop/api/userenv/nf-userenv-loaduserprofilew),但这通常是不受欢迎的。

您说您“感兴趣的是当前登录用户的用户配置文件”。这并不是您帖子标题所暗示的真正含义。

服务运行时,当前登录的用户可能有 0 个、1 个或多个。在上一篇文章中描述了获取用户列表:

如何获取所有登录用户的列表使用

但请记住,可能有 0、1 或多个结果。


推荐阅读