FSRM Beschränkungen aufheben 24. Januar 2010
Seit der Einführung von Windows Server 2003 R2 ist es möglich, sich diverse Berichte über die Auslastung eines Fileservers erstellen zu lassen. Leider wird die Freude über das schicke Feature sehr schnell getrübt, denn alle Berichte sind in ihrem Informationsgehalt recht begrenzt. Wenn man sich z.B. alle Dateien von einem bestimmten Besitzer anzeigen lassen will, dann wird mit folgendem Bericht konfrontiert:
Man kann sich also nur die ersten 1000 Dateien für jeden Besitzer anzeigen lassen. Wenn man sich aber für einen einzelnen Benutzer alle Dateien anzeigen lassen will, die er momentan im Besitz hat, dann ist dieses Feature eher nutzlos. Um trotzdem an diese Informationen zu kommen, war bis jetzt der Einsatz von Skripten oder auch Drittanbietertools notwendig.
Seit Windows Server 2008 ist es möglich, diese Beschränkungen aufzuheben. Allerdings geht das nicht über die grafische Benutzeroberfläche des “Ressourcen-Managers für Dateiserver”, sondern muss aufwendig über Skripting realisiert werden. Um die Sache etwas zu vereinfachen, habe ich das Powershell Skript “set-fsrmstoragereportlimit.ps1” erstellt. Damit können die einzelnen Beschränkungen relativ einfach angepasst werden.
########################################## # Skript konfiguriert die Beschränkungen der FSRM Reports um. # # Einsetzbar ab Windows Server 2008 # # Von Frank Röder 2010 # http://blog.iteach-online.de # ########################################## $values = @{"-maxfiles"=1;"-maxfilegroups"=2;"-maxowners"=3; "-maxfilesperfilegroup"=4;"-maxfilesperowner"=5;"-maxfilesperduplgroup"=6; "-maxduplicategroups"=7;"-maxquotas"=8;"-maxfilescreenevents"=9; "-maxpropertyvalues"=10;"-maxfilesperpropertyvalue"=11} $int64 = New-Object System.Int64 $fsrm = New-Object -comObject "fsrm.fsrmReportManager" #prüfe ob Parameter übergeben wurden if($Args.count%2 -eq 0 -and $Args.count -gt 0) { for($a=0;$a -lt $Args.Count;$a+=2) { if($values.containskey($Args[$a]) -and [System.Int64]::TryParse($Args[$a+1],[ref] $int64)){ "Setze neuen Wert für:" + [char]9 + $Args[$a] "Alter Wert:" + [char]9 + $fsrm.GetReportSizeLimit($values.Item($Args[$a])) "Neuer Wert:" + [char]9 + $Args[$a+1] $fsrm.SetReportSizeLimit($values.Item($Args[$a]),$Args[$a+1]) }else{ parameters_alert break } } } else{ parameters_alert } function parameters_alert(){ Write-host "Falsche Anzahl an Parametern oder ungültiger Parameter! Gültige Parameter sind:" -foregroundcolor red $values.Keys | ForEach-Object {$_ + [char]9 + "(Erlaubter Wert: 0 bis 9223372036854775807)"} "Beispiel: set-fsrmstoragelimit.ps1 -maxfiles 50000" }
Die Standardwerte für die einzelnen Werte sind:
| Parameter | Standardwert |
| MaxDuplicateGroups | 100 |
| MaxFiles | 1000 |
| MaxFileGroups | 10 |
| MaxFileScreenEvents | 1000 |
| MaxFilesPerDuplGroup | 10 |
| MaxFilesPerFileGroup | 100 |
| MaxFilesPerOwner | 100 |
| MaxFilesPerPropertyValue | 100 |
| MaxOwners | 10 |
| MaxPropertyValues | 10 |
| MaxQuotas | 1000 |
Hinweis: Das Skript funktioniert nur unter Windows Server 2008 und kann nicht unter Windows Server 2003 R2 eingesetzt werden. Bei Windows Server 2003 R2 sind die Werte der Speicherberichte statisch hinterlegt!
Hier kann das Skript heruntergeladen werden: set-fsrmstoragereportlimit.ps1 Size: 906 bytes , 285 Hits
Zusätzliche Quellen:
MSDN

