любезно помогите мне решить следующую проблему.
Я пытаюсь изменить дату компьютера с помощью службы Windows С#. Следующая команда эта команда работает в приложении Windows С#, если я запустил ее как RUN AS Administrator. но служба не меняет системную дату по следующей команде. мой компьютер находится в домене, и я запускаю эту службу в качестве учетной записи службы домена. Кроме того, я добавляю аккаунт службы @домена в группу системного администратора.
string strCmdText = "/c DATE ";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
как я могу запустить cmd в качестве запуска в качестве администратора в службе С#, который уже запущен как пользователь домена.
Я пробовал все решения, которые предоставляются здесь, но проблема остается.
Чтобы запустить CMD в привилегии администратора, вам просто нужно запустить приложение в привилегии администратора.
Но лучший способ вызвать программу с консоли будет использовать объект Process (не статический метод), где у вас больше опций, например. может считывать выходные данные и т.д.
Process p = new Process();
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "date";
p.StartInfo.Arguments = "";
p.Start();
Затем для ввода данных в приложение вам нужно использовать поле StandardInput класса Process
p.StandardInput.Write(string yourDate);
И в конце вы можете нежно ждать приложения, чтобы закончить работу.
p.WaitForExit();
Чтобы читать данные с вывода, вы должны использовать эту команду:
string output = p.StandardOutput.ReadToEnd();
Вы также можете прочитать эту строку за строкой (если вам нужно):
string[] oLines = output.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);