userprofile path在作为计划任务运行时返回Default

时间:2015-06-26 08:12:23

标签: c# .net scheduled-tasks console-application special-folders

我创建了以下C#console app:

var userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var path2 = Environment.ExpandEnvironmentVariables("%userprofile%");

File.AppendAllText(@"D:\logs\info.txt", userName + " -- " + path + " -- " + path2);

当我使用Windows任务计划程序创建计划任务并设置用户帐户以将任务运行到我的帐户(ht-laptop\huseyin)时,我在 info.txt 中获得以下输出文件:

ht-laptop\huseyin -- C:\Users\Default\Documents -- C:\Users\Default

这似乎是随机的,我见过印刷文本如下的情况:

ht-laptop\huseyin -- C:\Users\huseyin\Documents -- C:\Users\huseyin

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

您是否在Windows 8+(或类似版本)上运行此功能?如果是这样,这是用户配置文件加载的已知问题。技术说明(kb2968540)有一个解决方法(这是一种kludgy IMO)。