私はプロのプログラマーなので、自分が何をしているのかわかりません :)
重大な注意事項です。いいえ、私は決して専門家ではありません。しかし、私は問題を抱えており、それを修正する方法がわかりません。良いことは、私は(私が思うに)問題が何であるかを知っているということです。ここにいる誰かが助けてくれることを願っています。
問題のあらすじはこちら。サーバーとデータベースの管理タスクを実行するフォームを C# で作成しています。クリックすると、「y」サーバー上の「x」サービスのサービスステータスを返すボタンがあります。ステータスは、画面上のテキスト ボックスに出力されます。
これが私のコードです:
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());
}
}
「サーバー」で「サービス」を開けません。これはリモート サーバーであるため、これは資格情報/セキュリティの問題であると想定しています。ただし、Spooler サービスに問題はありません。
私の質問は...このサーバーにユーザーIDとパスワードを渡して、認証または実行して、これらのサービスのステータスを確認できるようにするにはどうすればよいですか。それが問題です。誰かがそれが問題だと思わない場合は、どこが間違っているのか教えてください:)