一旦我的程序安装在客户端计算机上,如何强制我的程序在Windows 7上以管理员身份运行?
我正在尝试使用InstallUtil.exe安装服务但通过调用Process.Start
.这是代码:
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start (startInfo);
Run Code Online (Sandbox Code Playgroud)
其中m_strInstallUtil
是完全限定的路径和exe"InstallUtil.exe",并且strExePath
是我的服务的完全限定路径/名称.
从提升的命令提示符运行命令行语法有效; 从我的应用程序运行(使用上面的代码)没有.我假设我正在处理一些进程提升问题,那么我如何在高架状态下运行我的进程?我需要看一下ShellExecute
吗?
这一切都在Windows Vista上.我正在VS2008调试器中运行升级到管理员权限的进程.
我也试过设置,startInfo.Verb = "runas";
但似乎没有解决问题.
我如何编写一个简单的 - 最简单的工作 - 测试应用程序,说明如何使用IPC /命名管道?
例如,如何编写一个控制台应用程序,程序1将"Hello World"写入程序2,程序2接收消息并将"Roger That"回复给程序1.
我试图从另一个用户帐户名运行exe文件,它显示以下错误
System.ComponentModel.Win32Exception: The requested operation requires an elevation
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
Run Code Online (Sandbox Code Playgroud)
这是我的代码
ProcessStartInfo pro = new ProcessStartInfo(application);
pro.UseShellExecute = false;
pro.Verb = "runas";
pro.WorkingDirectory = workingdirectory;
pro.RedirectStandardInput = true;
pro.RedirectStandardOutput = true;
pro.CreateNoWindow = true;
Process process = Process.Start(pro);
Run Code Online (Sandbox Code Playgroud)
怎么解决这个?
这是我的代码尝试使用admin priviligies运行cmd.exe.但是,我得到请求操作需要提升.如果我通过我的Windows运行带有"以管理员身份运行"的cmd.exe,它可以通过vb运行,但它没有.这是我的代码.
Try
Dim process As New Process()
process.StartInfo.FileName = "cmd.exe "
process.StartInfo.Verb = "runas"
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardInput = True
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardError = True
process.StartInfo.CreateNoWindow = True
process.Start()
process.StandardInput.WriteLine("route add 8.31.99.141 mask 255.255.255.255 " & cmdorder)
process.StandardInput.WriteLine("exit")
Dim input As String = process.StandardOutput.ReadToEnd
process.Close()
Dim regex As Regex = New Regex("(ok)+", RegexOptions.IgnoreCase) ' wa requested
' txtLog.AppendText(input)
Return regex.IsMatch(input)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在开发面向 .NET 3.0 的 WPF 应用程序。我需要调用一个需要管理权限的 exe。我可以通过使用以下内容让 UAC 提示许可:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Verb = "runas";
startInfo.UseShellExecute = true;
startInfo.FileName = "target.exe";
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要重定向标准输出,这样做会UseShellExecute = true
导致异常,说明:
Process 对象必须将 UseShellExecute 属性设置为 false 才能重定向 IO 流
但是,将其设置为 false 会导致 UAC 不提示许可,并且出现异常说明:
请求的操作需要提升
如何重定向标准输出并提示 UAC?
我见过这个类似的问题,但是解决方案是使用 app.manifest 来授予我的应用程序管理权限。由于要求,这是我不能做的事情。
我有一个 ASP.NET MVC4 网站,我正在尝试在服务器上执行一个进程。代码如下:
ProcessStartInfo startInfo = new ProcessStartInfo()
{
FileName = ExeLocation,
Arguments = string.Format("\"{0}\"{1}", ScriptLocation, Arguments),
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
WorkingDirectory = AppDir,
CreateNoWindow = true,
UserName = ExeUsername,
Password = ExePassword,
Domain = ExeDomain
};
using (Process process = Process.Start(startInfo))
{
using (StreamReader reader = process.StandardOutput)
{
output = reader.ReadToEnd();
}
using (StreamReader reader = process.StandardError)
{
error = reader.ReadToEnd();
}
process.WaitForExit();
if (process.ExitCode != 0)
{
throw new Exception(string.IsNullOrEmpty(output) ? error …
Run Code Online (Sandbox Code Playgroud)