8
votes

Trouvez quel compte un service est défini sur "Se connecter comme"

Comment savoir le compte d'utilisateur ( Système local / Utilisateur, etc. ) Un service est défini sur Exécuter ("Se connecter")?

Contrairement à ce Question similaire Ce code ne peut pas courir de dans le service lui-même et le service peut ne pas fonctionner.

the System.ServiceProcess.Servicecontroller classe A des méthodes utiles pour obtenir le statut mais pas le "connectez-vous comme" utilisateur "


0 commentaires

3 Réponses :


2
votes

Que diriez-vous d'utiliser WMI et la classe win32_service avec le paramètre StartName ?

Cet article pourrait aider.


0 commentaires

15
votes

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 à System.Management.Management strong>

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"]));
    }
}


0 commentaires

1
votes

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 


0 commentaires