von AutorNils Kaczenski veröffentlicht am3. Februar 2008, 15:43 Uhr Kurzlink http://faq-o-matic.net/?p=763
Kategorie Kategorie: Exchange,VBScript

Seit dem Service Pack 2 für Exchange Server 2003 ist die Datenbankgröße der Standard Edition nicht mehr auf 16 GB begrenzt. Sie kann jetzt auf bis zu 75 GB anwachsen. Damit ist die Standard Edition für Mittelständler wieder interessant. Es gibt aber eine Stolperfalle: Nach der Installation liegt die Begrenzung der Datenbank bei 18 GB. Wer die vollen 75 GB (oder einen Zwischenwert) ausnutzen möchte, muss erst einen Eintrag in der Registry setzen. Wie das geht, beschreibt folgender Artikel:

[Konfiguration und Verwaltung der Größenbeschränkung von Datenbanken]
http://technet.microsoft.com/de-de/library/aa998066.aspx

Dabei gibt es aber gleich wieder einen Pferdefuß: Bei einem einzelnen Server ist so ein Registry-Eintrag schnell gesetzt. Was aber, wenn es um mehrere Server geht, die auch noch regional verteilt sind? Der naheliegende Gedanke, den Registry-Wert per Gruppenrichtlinie zu verteilen, scheidet leider aus: Schlauerweise muss die Einstellung in einem Pfad getroffen werden, der variable Werte enthält, nämlich den Servernamen und den GUID (!) der Datenbank. Tolle Wurst!

Abhilfe schafft aber ein kleines Skript. Es nutzt die Tatsache aus, dass die passenden Registry-Schlüssel bereits vorhanden sind und nur noch die passenden Einträge fehlen. Also liest es den GUID-Schlüssel einfach aus und setzt dort die nötigen Werte. Das folgende Skript setzt das Limit auf den Maximalwert von 75 GB und die Warnschwelle auf 10 Prozent (Exchange schreibt also eine Warnung ins Eventlog, wenn nur noch 10 Prozent frei sind). Achtung: Das Skript sollte nur auf Exchange Server 2003 Standard Edition eingesetzt werden! Auf einer Enterprise Edition funktioniert es nämlich auch und setzt die ("unbegrenzte") Datenbankgröße dann auf 75 GB herab …

 

  1. Set objShell = CreateObject("WScript.Shell")
  2. Set objNet = CreateObject("WScript.Network")
  3. strRegBasic = "SYSTEM\CurrentControlSet\Services\MSExchangeIS\"
  4. strComputername = objNet.ComputerName
  5. strRegComp = strRegBasic & strComputername
  6. Const HKEY_LOCAL_MACHINE = &H80000002
  7. strComputer = "."
  8. Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
  9.     strComputer & "\root\default:StdRegProv")
  10. oReg.EnumKey HKEY_LOCAL_MACHINE, strRegComp, arrSubKeys
  11. For Each subkey In arrSubKeys
  12. if left(subkey, 7) = "Private" then strRegPrivate = subkey
  13. Next
  14. If strRegPrivate <> "" Then
  15.     strRegPrivate = "HKEY_LOCAL_MACHINE\" & strRegComp & "\" & strRegPrivate
  16.     objShell.RegWrite strRegPrivate & "\Database Size Limit in GB", "75", "REG_DWORD"
  17.     objShell.RegWrite strRegPrivate & "\Database Size Buffer Warning in Percentage", "10", "REG_DWORD"
  18. End If
  19. WScript.Echo "Finished. Now restart the Information Store."

Verwandte Beiträge:

  1. Exchange Server 2003: 9551-Warnungen loswerden
    Nach einer Migration von Exchange Server 5.5 auf Exchange Server 2003 mit der Move-Mailbox-Methode tauchen im Ereignisprotokoll des Exchange-2003-Servers oft...
  2. “Objekt vor zufälligem Löschen schützen” per Skript setzen
    Seit Windows Server 2008 gibt es eine neue Option beim Erzeugen von Organisationseinheiten (OU) in Active Directory: Sie nennt sich...
  3. Migration von Exchange 2003 nach Exchange 2007
    Es gibt mehrere Möglichkeiten, auf die aktuelle Version von Exchange zu migrieren. Eine davon ist die "IntraOrg Migration", also die...
  4. Systeme mit Windows Server 2003 R2 identifizieren
    Es ist nicht ganz leicht, im Rahmen einer Dokumentation im Netzwerk die Server zu identifizieren, die mit Windows Server 2003...
  5. Exchange Server 2007 SP1 und Remote Streaming Backup
    Um eine Exchange Server Datenbank zu sichern, wird in den meisten Fällen von einem Backup Server einen Agent installiert und...