Lassen Sie IIS AppPool den Computer über das Web herunterfahren

429
Talset

Ich versuche, den lokalen Computer über den von IIS gehosteten Webdienst herunterfahren zu lassen.

Ich habe ein IIS AppPool namens "Foobar", die vollständige Zeichenfolge wäre "IIS AppPool \ Foobar". Dieser Anwendungspool läuft derzeit unter der Identität "LocalSystem". Wenn ich den Computer herunterfahre, indem ich bool ExitWindowsEx(int flags, int reason);beispielsweise ExitWindowsEx(EWX_SHUTDOWN, 0)in ASP.NET-Code aufrufe, gibt Windows mir eine Nachricht

System Error Code 1314 (0x522) - Ein erforderliches Privileg wird vom Client nicht gehalten

Wenn ich jedoch die Identität des Foobar IIS AppPool in einen Administrator-OS-Benutzer anstelle von LocalSystem ändere, kann ich den Computer vom Webdienst herunterfahren. Ich möchte jedoch nicht unter einem Administrator-OS-Konto laufen (ja, ich weiß, dass SYSTEM auch hohe Berechtigungen hat, aber ich kann den Computer nicht herunterfahren).

Frage: Wie kann ich es so einrichten, dass ich erfolgreich ExitWindowsEx vom eingebauten Konto LocalSystem (oder sogar vom eingebauten ApplicationPoolIdentity) aus aufrufen kann, anstatt eine Betriebssystembenutzeridentität zu verwenden?

Ich habe versucht:

  1. Bearbeiten der lokalen Richtlinie: In der lokalen Sicherheitsrichtlinie können sowohl SYSTEM als auch "IIS APPPOOL \ Foobar" das System herunterfahren und das Herunterfahren von einem Remote-System erzwingen.

  2. Verwendung von Ntrights

    ntrights -u "IIS AppPool\Foobar" +r SeRemoteShutdownPrivilege

und ntrights -u "IIS AppPool\Foobar" +r SeShutdownPrivilege

Lassen Sie Fehler 1314 auch nicht verschwinden.

0

0 Antworten auf die Frage