Kontingentverwaltung für Remoteshells

Mit der Kontingentverwaltung können Benutzer Systemressourcen effizienter verwalten. Die Windows-Remoteverwaltung (Windows Remote Management, WinRM) hat eine bestimmte Gruppe von Kontingenten hinzugefügt, die eine bessere Dienstqualität bieten, Dazu beitragen, Denial-of-Service-Probleme zu vermeiden und Serverressourcen gleichzeitigen Benutzern zuzuordnen. Der WinRM-Kontingentsatz basiert auf der Kontingentinfrastruktur, die für den IIS-Dienst (InternetInformationsdienste) implementiert ist.

Durch die Implementierung von Kontingenten können Sie Leistungseinbußen und Denial-of-Service-Probleme verhindern, indem Sie die folgenden Schritte ausführen:

  • Einschränken der Anzahl von Shells und Shellprozessen, die ein Benutzer erstellen kann
  • Einschränken der maximalen Anzahl gleichzeitiger Benutzer
  • Verwalten der Arbeitsspeichermenge, die einer Shell zugeordnet ist
  • Festlegen eines Timeouts für inaktive Shells

Kontingenteinstellungen

Die folgenden Kontingente müssen für die Remoteshellverwaltung erzwungen werden. Diese Kontingente können über das Hilfsprogramm winrm oder über Gruppenrichtlinie Einstellungen konfiguriert werden. Einstellungen, die von einem Gruppenrichtlinie konfiguriert werden, setzen die vom Winrm-Hilfsprogramm festgelegten Kontingente ab. Weitere Informationen zum Festlegen von Gruppenrichtlinien für WinRM finden Sie unter Installation und Konfiguration für die Windows-Remoteverwaltung.

Idletimeout

Die maximale Zeit in Millisekunden, bevor eine inaktive Remoteshell gelöscht wird. Der Standardwert ist 180000 Millisekunden. Die Mindestzeit beträgt 1000 Millisekunden.

MaxProcessesPerShell

Die maximal zulässige Anzahl von Prozessen pro Shell, einschließlich der untergeordneten Prozesse der Shell. Der Standard ist 25.

MaxMemoryPerShellMB

Die maximale Menge an zugeordnetem Arbeitsspeicher pro Shell, einschließlich der untergeordneten Prozesse der Shell. Der Standardwert ist 1024 MB.

Hinweis

Das Verhalten wird nicht unterstützt, wenn MaxMemoryPerShellMB auf einen Wert festgelegt ist, der kleiner als der Standard ist.

 

MaxShellsPerUser

Die maximale Anzahl von Shells pro Benutzer. Der Standardwert ist 30.

MaxConcurrentUsers

Die maximale Anzahl gleichzeitiger Benutzer, die Shells öffnen können. Der Standardwert ist 10.

Veraltete Kontingente

WinRM 2.0 legt das MaxShellRunTime-Kontingent auf schreibgeschützt fest. Das Ändern des Werts für dieses Kontingent hat keine Auswirkungen auf die Remoteshells.

Abrufen von Informationen zur Kontingentkonfiguration

Um die Kontingentkonfigurationseinstellungen zu überprüfen, geben Sie winrm get winrm/config ein.

Der folgende Codeausschnitt ist ein textbasiertes Beispiel für eine WinRM-Konfiguration mit den Standardkontingenteinstellungen.

Config

          ...         

          Winrs

                   AllowRemoteShellAccess = true

                   IdleTimeout = 7200000

                   MaxConcurrentUsers = 10

                   MaxProcessesPerShell = 25

                   MaxMemoryPerShellMB = 1024

                   MaxShellsPerUser = 30

Konfigurieren von Shellkontingenten

Kontingente können über eine Gruppenrichtlinie-Einstellung oder manuell festgelegt werden. Weitere Informationen zu bestimmten Konfigurationseinstellungen finden Sie unter Installation und Konfiguration für die Windows-Remoteverwaltung.

So legen Sie ein Kontingent mit Gruppenrichtlinie fest

  1. Öffnen Sie ein Eingabeaufforderungsfenster als ein Administrator.
  2. Geben Sie an der Eingabeaufforderung gpedit.msc ein. Das Fenster Gruppenrichtlinie Objekt-Editor wird geöffnet.
  3. Suchen Sie die Windows-Remoteverwaltung und windows Remote Shell Gruppenrichtlinie Objects (GPO) unter Computerkonfiguration\Administrative Vorlagen\Windows-Komponenten.
  4. Wählen Sie auf der Registerkarte Erweitert eine Einstellung aus, um eine Beschreibung anzuzeigen. Doppelklicken Sie auf eine Einstellung, um sie zu bearbeiten.

So legen Sie ein Kontingent manuell fest

  1. Öffnen Sie ein Eingabeaufforderungsfenster als ein Administrator.
  2. Geben Sie an der Eingabeaufforderung winrm set winrm/config/winrs '@{<Quota>="<Value>"}' ein.

Um beispielsweise die maximale Anzahl von Shells pro Benutzer von 5 auf 7 zu erhöhen, geben Sie winrm set winrm/config/winrs '@{MaxShellsPerUser="7"}' ein.