C# De L'État Du Service Sur La Machine Distante

Je suis un expert programmeur, donc je n'ai pas la moindre idée de WTH je suis en train de faire 🙂

Sur une note plus sérieuse, non, je ne suis pas expert par tous les moyens. J'ai un problème et je ne sais pas comment le résoudre. La bonne chose est, j'ai (je pense) savez quel est le problème, et j'espère que quelqu'un ici peut aider.

Voici le synopsis du problème. Je suis entrain de créer un formulaire en C# qui va faire du serveur et de la base de données de l'administration de la tâche pour moi. J'ai un bouton qui lorsqu'il est cliqué est censé renvoyer le service de l'état "x" service "y" du serveur. L'état est imprimé sur l'écran d'une zone de texte.

Voici mon code:

     private void button2_Click(object sender, EventArgs e)
    {
        string fs = "Service X Status = ";
        string mr = "Service A Status = ";
        string qp = "Service B Status = ";
        string sp = "Spooler Service Status = ";
        ServiceController fssc = new ServiceController("xService", "yServer");
        ServiceController mrsc = new ServiceController("aService", "yServer");
        ServiceController qpsc = new ServiceController("bService", "yServer");
        ServiceController spsc = new ServiceController("Spooler", "yServer");

        try
        {
            txtGtwySts.AppendText(sp + spsc.Status.ToString());
            txtGtwySts.AppendText(Environment.NewLine);
            txtGtwySts.AppendText(fs + fssc.Status.ToString());
            txtGtwySts.AppendText(Environment.NewLine);
            txtGtwySts.AppendText(mr + mrsc.Status.ToString());
            txtGtwySts.AppendText(Environment.NewLine);
            txtGtwySts.AppendText(qp + qpsc.Status.ToString());
        }
        catch (Exception crap)
        {
            string msg = "";
            int i;
            for (i = 0; i < crap.Message.Count(); i++)
            {
                msg += "Error # " + i + " Message: " + crap.Message + "\n";

            }
            MessageBox.Show(msg);
            MessageBox.Show(i.ToString());
        }
    }

Je reçois des exceptions, ce qui revient à dire: Impossible d'Ouvrir le "Service", "Serveur". Puisque c'est un serveur distant, je suppose que c'est une information d'identification/problème de sécurité. Je ne, cependant, ont des problèmes avec le service Spouleur.

Ma question est...Comment puis-je passer l'id utilisateur et le mot de passe pour ce serveur pour qu'il s'authentifier ou runas afin que je puisse vérifier l'état de ces services, ce qui est le problème. Si quelqu'un pense que sa ne marche pas le problème, veuillez m'informer où je suis allé mal 🙂

OK, j'ai trouvé comment faire, mais je n'arrive pas à comprendre comment le code. De ce que j'ai lu, j'ai besoin de mettre ce que je veux faire ci-dessus dans le code qui emprunte le nom d'utilisateur et puis, après, il me l'a demandé des informations, met fin à l'usurpation d'identité. Je comprends que le codage en dur des informations de l'utilisateur n'est pas le plus sûr moyen de le faire, mais ce qui sera suffisant pour ce que cela va être utilisé pour. Je vais continuer mes recherches sur la façon d'usurper l'identité en C#.

OriginalL'auteur Jason | 2011-07-28