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
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.
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.
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
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
- Öffnen Sie ein Eingabeaufforderungsfenster als ein Administrator.
- Geben Sie an der Eingabeaufforderung gpedit.msc ein. Das Fenster Gruppenrichtlinie Objekt-Editor wird geöffnet.
- Suchen Sie die Windows-Remoteverwaltung und windows Remote Shell Gruppenrichtlinie Objects (GPO) unter Computerkonfiguration\Administrative Vorlagen\Windows-Komponenten.
- 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
- Öffnen Sie ein Eingabeaufforderungsfenster als ein Administrator.
- 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.