从计算机上托管的ASP.Net页重新启动计算机

时间:2013-02-12 12:30:12

标签: c# asp.net

我有一台计算机A可以承载不同类型的东西:

  • 网站(使用C#ASP.Net
  • 开发)
  • 应用

我们的客户可以访问该网站,有时他们会想重新启动计算机A(知道它会在重启期间切断网站)。

我的问题很简单:它是否存在以下方式:

  • 只需点击ASP.Net页面上的按钮即可重新启动计算机?我怎么能这样做?
  • 同样,点击ASP.Net页面上的按钮是否可以执行一些批处理脚本(在计算机A上执行)?

感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

这是足够安全的方法(只要密码安全存储)

ProcessStartInfo startInfo = new ProcessStartInfo("shutdown /r /f /t 5");
startInfo.UserName ="user with enough rights";
startInfo.Password ="password";
Process.Start(startInfo);

// /r - restart
// /f - force
// /t 5 - wait 5 seconds

答案 1 :(得分:1)

您可以使用System执行此操作。 Diagnostics.Process命名空间,请查看以下链接以了解完整过程。

http://www.c-sharpcorner.com/UploadFile/yuanwang200409/RemoteRestartWindows09252006141003PM/RemoteRestartWindows.aspx

答案 2 :(得分:1)

实现起来非常简单,但问题是IIS是否允许它。您还将打开漏洞,因为如果有人设法利用此漏洞,他们可以链重启您的服务器。

如果您真的想要继续实施此功能,您只需设置一个Web Service调用即可触发以下代码。

System.Diagnostics.Process.Start("shutdown.exe", "-r -t 0");

虽然,听起来更像是在寻找管理工具来处理这个问题。我建议您查看可用于远程管理服务器的众多工具之一。对于安全性而言,管理软件能够为用户提供特定权限非常重要,例如限制他们只能重新启动服务器。

答案 3 :(得分:1)

您可以在命令行中从C#执行“shutdown -r”命令,请参阅this SO问题如何操作。请注意,应用程序必须非常安全,并且在IIS下运行的应用程序必须具有足够的用户权限。

编辑: 富士提出的方法运作良好,甚至不需要提升过程(我没想到它会起作用,哎呀;)