如何获取Windows用户的TempPath,这不是当前的用户

时间:2015-01-05 17:09:41

标签: c# .net registry windows-server-2012-r2

Windows 2012 R2,user1:dev,user2:dev

在C#中有一个方法Path.GetTempPath()。 user1是一个Windows帐户,用作登录以运行服务。在此服务中使用TempPath。

通过user2运行的应用程序想知道某些检查的路径。我怎么能得到这条路呢? 如何获取另一个Windows帐户使用的TempPath?

我尝试了以下内容:

 ServiceController sc = new ServiceController("service");
 string serviceAccountName = RegistryHelpers.GetServiceAccountNameFromRegistry(sc);
 if (serviceAccountName.Equals("LocalSystem"))
                return null;

 // this is necessary for local accounts => Sid constructor throws exception
 serviceAccountName = serviceAccountName.Replace(@".\", @"");

 Sid sid = new Sid(serviceAccountName);

 string regKey = sid.SidString + @"\Environment";
 string tempPathValue = RegistryHelpers.GetRegistryValueFromRegistryUsers(regKey, "TEMP");

在这种情况下的问题是SidString \ Environment中的RegistryValue是"%USERPROFILE%\ AppData \ Local \ Temp"这导致当前登录的Windows用户配置文件。

谢谢,新年快乐,祝福等等。

0 个答案:

没有答案