Код на самом деле работает так, как он должен работать. Чтобы получить свой профиль, вам нужно изменить учетную запись, под которой работает служба. Для этого перейдите к оснастке «Управление службами» на панели управления и щелкните правой кнопкой мыши службу, выберите «Свойства», а затем измените учетную запись, с которой работает служба, на свою учетную запись (на вкладке Вход в систему ). ).
Конечно, после прочтения вашего вопроса дважды кажется, что вы действительно хотели бы получить путь к профилю для вошедшего в систему пользователя. Если это так, то, что я опишу выше, не будет работать. Вам нужно будет использовать другую тактику, чтобы получить доступ к текущему пользователю, а затем получить путь к профилю пользователя. Все это доступно в Реестре.
Класс WindowsIdentity может помочь, но вы должны иметь в виду, что в любой момент времени на компьютере с Windows может входить в систему более одного пользователя. Я говорю may
потому что на большинстве пользовательских компьютеров обычно есть только один активный пользовательский сеанс. Но это не значит, что запущены процессы только одного пользователя. Таким образом, в зависимости от того, что именно вы пытаетесь достичь, могут быть и другие вещи, которые вам необходимо принять во внимание.