Comment savoir le compte d'utilisateur ( Système local / Utilisateur, etc. ) Un service est défini sur Exécuter ("Se connecter")? P>
Contrairement à ce Question similaire Ce code ne peut pas courir de dans le service lui-même et le service peut ne pas fonctionner. P>
the System.ServiceProcess.Servicecontroller classe A des méthodes utiles pour obtenir le statut mais pas le "connectez-vous comme" utilisateur " p>
3 Réponses :
Que diriez-vous d'utiliser WMI et la classe Cet article pourrait aider. P> win32_service code> avec le paramètre code> StartName code>? P>
C'est la seule façon dont je sache, je l'ai trouvé en regardant autour et l'a testé, cela fonctionne. Assurez-vous d'utiliser le nom de service, ce n'est pas un nom d'affichage, vous devrez également ajouter une référence à string serviceName = "aspnet_state";
SelectQuery query = new System.Management.SelectQuery(string.Format(
"select name, startname from Win32_Service where name = '{0}'", serviceName));
using (ManagementObjectSearcher searcher =
new System.Management.ManagementObjectSearcher(query))
{
foreach (ManagementObject service in searcher.Get())
{
Console.WriteLine(string.Format(
"Name: {0} - Logon : {1} ", service["Name"], service["startname"]));
}
}
Ceci fera votre travail
Get-WMIObject Win32_Service | Where-Object {$_.startname -ne "localSystem" }| Where-Object {$_.startname -ne "NT AUTHORITY\LocalService" } |Where-Object {$_.startname -ne "NT AUTHORITY\NetworkService" } |select startname, name