Est-il possible d'obtenir le chemin du fichier exécutable d'un service Windows en cours d'exécution sans avoir besoin du privilège de niveau d'exécution administrateur dans .Net? (Sans que le contrôle de compte pour obtenir la confirmation de l'utilisateur)Comment obtenir le chemin d'accès du fichier exécutable du service
Répondre
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
Essayez d'obtenir du Registre:
using Microsoft.Win32;
.
.
.
RegistryKey hklm = Registry.LocalMachine;
hklm = hklm.OpenSubKey(@"System\CurrentControlSet\Services\SERVICE_NAME");
string servicePath = hklm.GetValue("ImagePath");
est ici une solution possible en utilisant WMI:
using System.Management;
String query = String.Format("SELECT PathName FROM Win32_Service WHERE Name = '{0}'", serviceName);
using (ManagementObjectSearcher mos = new ManagementObjectSearcher(query)) {
foreach(ManagementObject mo in mos.Get())
Console.WriteLine(mo["PathName"].ToString());
}
Assurez-vous d'envelopper le ManagementObjectSearcher
dans un using
bloquer parce que c'est une ressource et doit être éliminé correctement.
Je ne suis pas sûr que cela nécessite des autorisations élevées pour s'exécuter, mais il nécessite l'installation et l'exécution de WMI sur la machine. Pour vérifier si WMI est en cours d'exécution, ouvrez le composant logiciel enfichable Services et recherchez Windows Management Instrumentation. Vous pouvez également l'activer en exécutant net start winmgmt
à partir de la ligne de commande.
Je reçois l'exception "Requête invalide" sur mos.Get() –
@LostInLib Mes excuses ... J'avais oublié de joindre le nom du service entre guillemets simples. J'ai mis à jour ma réponse pour refléter ce changement. :) – Paccc
- 1. obtenir le chemin du fichier txt
- 2. Obtenir le chemin du fichier via javascript
- 3. NSIS obtenir le chemin du fichier appelant
- 4. Chemin absolu du répertoire de démarrage exécutable
- 5. Obtenir le chemin d'accès réel du dossier
- 6. Javascript - obtenir le chemin du fichier a chuté dans HTA
- 7. RegEx pour obtenir le chemin du fichier, sans domaine
- 8. iPhone: Obtenir le chemin du fichier qui est dans le sous-dossier du dossier de ressources
- 9. Obtention du chemin d'accès complet pour le service Windows
- 10. CString extrait le chemin du fichier
- 11. Comment obtenir/définir le chemin du répertoire logique en python
- 12. Obtention du chemin de fichier du module importé
- 13. Chemin/taille du fichier en C#
- 14. Comment trouver le chemin complet du fichier Outlook .pst?
- 15. conserve le chemin du fichier de contrôle du téléchargement de fichier dans le contrôle!
- 16. Comment obtenez-vous le chemin du fichier pour le fichier lorsque le répertoire de l'utilisateur change?
- 17. Sql SMO: Comment obtenir le chemin du nom de fichier physique de la base de données?
- 18. Dans ASP.NET, comment obtenir le chemin du fichier physcial lorsque HttpContext.Current est NULL?
- 19. comment obtenir le chemin du fichier vidéo enregistré de temp dans iphone sdk et jouer?
- 20. Comment puis-je obtenir le chemin du fichier dans un paquet java?
- 21. Comment puis-je obtenir le chemin complet du fichier téléchargé en C# 3.0?
- 22. Obtenir le nom du fichier en PHP
- 23. Comment faire pour définir le chemin de classe pour le client du service Web dans build.xml
- 24. C# comment spécifier le chemin du fichier appData dans le fichier app.config
- 25. Obtention du chemin absolu d'un fichier
- 26. Obtenir le chemin d'accès du répertoire au fichier .class contenant le principal
- 27. Obtenir le chemin du lien vers lequel il pointe?
- 28. Définir les propriétés du chemin d'accès et du nom du fichier avant le téléchargement
- 29. Comment puis-je obtenir l'icône du fichier exécutable ayant seulement une instance de son Processus en C#
- 30. Obtention du chemin du répertoire .NET Framework
La lecture du registre de formulaire nécessite un niveau d'exécution d'administrateur privilégié. N'est-ce pas? – mrtaikandi
Bien que ce ne soit pas le moyen idéal pour obtenir cette information, je me suis rabattue sur ce sujet comme ci-dessus mais avec quelques modifications que je viens de faire. Nécessite des tests à savoir sur l'invite UAC, mais presque n'importe quel utilisateur peut interroger cette partie du registre sans entrave, je crois. – Saxar