CMD 命令不执行

问题描述

我正在尝试从 c# 在 cmd 中运行此命令,但由于某种原因它不起作用。但是,当我将 Argument 更改为“/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();

解决方法

当 UseShellExecute 设置为 false 时,动词“runas”不起作用,如下所示:Set ProcessStartInfo.EnvironmentVariables when Verb="runas"

您可以提供具有 UserName 和 Password 属性的管理员凭据,我们将 UseShellExecute 设置为 true 并在 shell 中执行您的命令。