从服务中查找用户的HOMEPATH

时间:2011-09-08 08:48:24

标签: c# .net windows-services user-accounts local-system-account

在编写服务的过程中我有

        //# Service Account Information
        serviceProcessInstaller.Account = ServiceAccount.LocalSystem;

在安装程序中。

我在写日志时遇到了问题

    static string USERS_HOME_DIR = Environment.GetEnvironmentVariable("HOMEDRIVE") + Environment.GetEnvironmentVariable("HOMEPATH");

因为当服务运行时(以“管理员”身份安装),事件记录器正在报告

  

无法启动服务。 System.IO.DirectoryNotFoundException:找不到路径'C:\ Documents \ Interest of Interest'的一部分

我需要local_PC用户的HOMEPATH,任何想法如何获取它们?

更新

实际上,当他们的会话和服务启动时,最好只获取当前登录用户的路径。我的服务不是可重入的,但一个用户总比没有好。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,那么您需要special folder enumerations

有类似的东西:

String PersonalFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);

如果要将服务作为localsystem帐户运行,则存在一组用于存储数据的标准。请参阅this answer on serverfault