查找用户网络服务的临时文件夹?

Kev*_*ale 19 .net windows sql-server

我正在尝试编写一个包装器来帮助我们的客户恢复SQL Server数据库.默认情况下,SQL Server作为用户网络服务运行,其权限非常有限.我们的客户有时会感到困惑,他们不能只指向任何位置的备份文件并将其恢复.

我想将文件从他们选择的位置复制到SQL Server可以访问的临时位置,但我很难找到位置.我不能只调用Path.GetTempPath()因为它给了我SQL Server无法访问的用户临时值.

是否有一个我可以检索的文件夹始终有效?

Hel*_*ein 32

网络服务帐户的临时文件夹位于:

%WINDIR%\ ServiceProfiles \网络服务\应用程序数据\本地的\ Temp

在Windows XP/2003上,网络服务配置文件位于常规用户配置文件目录中.在德国机器上,它在这里:

C:\ Dokumente und Einstellungen\NetworkService\Lokale Einstellungen\Temp

在英语计算机上它会在这里:

C:\ Documents and Settings\NetworkService\Local Settings\Temp

您可以通过查询此注册表值找到所有Windows版本上配置文件的路径:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-20\ProfileImagePath

但是,这并没有为您提供XP/2003上的"本地设置"的本地化名称.

默认情况下,管理员可以写入网络服务配置文件.使用它的临时文件夹应该是完全正常的.


Kis*_*e A 5

在 Windows Vista 及更高版本上

  1. 系统帐号 ( NT AUTHORITY\SYSTEM)
    C:\Windows\TEMP

  2. 网络服务 ( NT AUTHORITY\NETWORK SERVICE) C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp

  3. 本地服务 ( NT AUTHORITY\LOCAL SERVICE) C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp