【发布时间】:2021-06-23 16:03:55
【问题描述】:
我正在尝试从 c# 在 cmd 中运行此命令,但由于某种原因它不起作用。但是当我将我的参数更改为“/C ipconfig”时,它工作得很好。我不明白为什么。我究竟做错了什么? 这是我的代码:
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = $"/C wbadmin start backup - backupTarget:{TargetBackupDrive}: -include:{LocationOs}: -allcritical - quiet";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.Verb = "runas";
process.Start();
CmdOutput = process.StandardOutput.ReadToEnd();
process.WaitForExit();
【问题讨论】:
-
The docs for wbadmin 说它必须运行提升。您的应用是否以管理员身份运行?
-
为什么你
RedirectStandardInput = true然后从不提供任何输入? -
是的,我的错我忘了删除它。但这并没有改变任何东西。
-
@OlivierRogier 我在发布我的问题之前检查了这些帖子。它没有用。
-
您发布的代码无法使用。您正在尝试使用
runas,同时将UseShellExecute设置为false。由于wbadmin需要提升的进程才能工作,因此您发布的代码无法工作。
标签: c# .net command-line runas start-process