gpt4 book ai didi

c# - 当 AppPool 在 LocalSystem 或 LocalService 帐户下运行时,从 ASP.NET 应用程序重新启动服务器

转载 作者:太空狗 更新时间:2023-10-30 00:34:15 24 4
gpt4 key购买 nike

是否可以从 LocalSystem 或 LocalService 帐户托管的 ASP.NET 应用程序重新启动服务器?当我创建自定义管理帐户并将 AppPool 在该帐户下运行时,这是有效的:

Process.Start("shutdown", "/r /d 4:1 /t 10");

但是,我不想拥有自定义帐户(因为密码过期并且需要在更改用户密码时更新所有 AppPools - 我需要维护多个服务器)。

那么,这可能吗?

最佳答案

您始终可以使用可以重启服务器的不同身份启动进程:

var info = new ProcessStartInfo("shutdown.exe", "/r /t 0");
info.UserName = "accountWithAdminPermissions";
//A not-so-secure use of SecureString
var secureString = new SecureString();
var password = "abc123";
foreach (var letter in password)
{
secureString.AppendChar(letter);
}
info.Password = secureString;
var restart = new Process();
restart.StartInfo = info;
restart.Start();

如果您只想授予非管理员帐户重启服务器的权限:

  1. 打开secpol.msc
  2. 导航到本地策略\用户权限分配。
  3. 找到关闭系统
  4. 添加帐户。

这可能是使用帐户以获得最低权限的好方法。这样您就不必像管理员组中的帐户那样使用非常大的锤子。

Shutdown.exe(我相信)总是需要管理员权限。可以引用this MSDN post在没有 shutdown.exe 的情况下重新启动服务器。

关于c# - 当 AppPool 在 LocalSystem 或 LocalService 帐户下运行时,从 ASP.NET 应用程序重新启动服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8282987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com