Rechercher un dossier temporaire pour le service réseau de l'utilisateur?
Je suis en train d'écrire un wrapper pour aider nos clients à restaurer une base de données SQL Server. Par défaut, SQL Server s'exécute en tant qu'utilisateur du Service Réseau qui n'a que très peu d'autorisations. Nos clients sont parfois confus qu'ils ne peuvent pas simplement pointer vers un fichier de sauvegarde dans un endroit et de le restaurer.
Je veux copier le fichier à partir de l'emplacement de leur choix à un répertoire temporaire que SQL Server peut accéder, mais je vais avoir un moment difficile de trouver un emplacement. Je ne peux pas appeler juste Chemin.GetTempPath() car cela me donne la temp de l'utilisateur SQL Server ne peut pas accéder.
Est-il un dossier que je peux les récupérer que le sera toujours?
source d'informationauteur Kevin Gale
Vous devez vous connecter pour publier un commentaire.
Le dossier temp pour le compte de Service Réseau est situé ici:
Sur Windows XP/2003 le profil de service réseau est situé dans le grand répertoire du profil utilisateur. Sur une machine allemande c'est ici:
Sur un ordinateur en anglais, il serait ici:
Vous pouvez trouver le chemin d'accès au profil sur toutes les versions de Windows en interrogeant cette valeur de registre:
Qui ne vous donne pas le nom localisé de "Local Settings" sur XP/2003.
Par défaut, les Administrateurs peuvent écrire dans le profil de service réseau. En utilisant son dossier temp pour votre but doit être parfaitement OK.
Sur Windows Vista et au-dessus de
Compte Système (
NT AUTHORITY\SYSTEM
)C:\Windows\TEMP
Service Réseau (
NT AUTHORITY\NETWORK SERVICE
)C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
De Service Local (
NT AUTHORITY\LOCAL SERVICE
)C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp
Pourquoi ne pas simplement donner NETWORK_SERVICE l'autorisation d'un dossier spécifique et de dire les utilisateurs de placer les fichiers de sauvegarde?
Ou tout simplement courir:
de SSMS et de voir où le fichier est écrit sur.