Я пытался создать простое приложение для резервного копирования моих баз данных Windows Server, а также для резервного копирования всего сервера.
Для этого я хочу использовать командные файлы, которые выполняются моим приложением.
Я испробовал несколько подходов, но по какой-то причине он всегда терпел неудачу, поэтому я был бы рад, если бы вы могли мне помочь.
Пакетный файл BACKUPSERVER:
wbadmin start backup -backupTarget:D: -include:C: -allCritical -quiet
Я должен запустить летучую мышь как администратор, или она не работает из-за отсутствия разрешений.
C # код:
static Task<int> RunProcessAsync(string fileName)
{
............
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.Verb = "runas";
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C \"D:\\SQLBACKUP\\BACKUPSERVER.bat\"";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
Отладка говорит: «wbadmin не найден». «Руны» активированы или нет, без разницы.
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = fileName;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = true;
startInfo.CreateNoWindow = false;
// startInfo.Verb = "runas";
var process = new Process
{
StartInfo = { FileName = fileName },
EnableRaisingEvents = true
};
process.StartInfo = startInfo;
process.Exited += (sender, args) =>
{
tcs.SetResult(process.ExitCode);
process.Dispose();
};
process.Start();
Также не работает.
Есть идеи?
EDIT:
Я могу запускать такие команды, как завершение работы, но wbadmin не работает вообще ...