Mittwoch, 29. September 2010

FSRM Beschränkung aufheben


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:
Ressourcen-Manager für Dateiserver
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:

##########################################
# Skript konfiguriert die Beschränkungen der FSRM Reports um.
#
# Einsetzbar ab Windows Server 2008
#
# Von
#
##########################################
$values = @{"-maxfiles"=1;"-maxfilegroups"=2;"-maxowners"=3;
"-maxfilesperfilegroup"=4;"-maxfilesperowner"=5;"-maxfilesperduplgroup"=6;
"-maxduplicategroups"=7;"-maxquotas"=8;"-maxfilescreenevents"=9;
"-maxpropertyvalues"=10;"-maxfilesperpropertyvalue"=11}

$int32 = New-Object System.Int32
$fsrm = New-Object -comObject "fsrm.fsrmReportManager"
#prüfe ob Parameter übergeben wurden
if($Args.count%2 -eq 0 -and $Args.count -gt 0)
{
$fsrm.SetReportSizeLimit($values.Item($Args[0]),$Args[1])
}
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"
}


Beispiel für Aufruf Parameter:

"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" set-ExecutionPolicy unrestricted
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfiles 1000000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfilegroups 1000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxowners 1000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfilesperfilegroup 1000000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfilesperowner 1000000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfilesperduplgroup 1000000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxduplicategroups 1000000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxquotas 100000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfilescreenevents 100000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxpropertyvalues 1000
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" C:\Skripts\fsrmstoragelimit.ps1 -maxfilesperpropertyvalue 1000
CD..


Die Standardwerte für die einzelnen Werte sind:
ParameterStandardwert
MaxDuplicateGroups100
MaxFiles1000
MaxFileGroups10
MaxFileScreenEvents1000
MaxFilesPerDuplGroup10
MaxFilesPerFileGroup100
MaxFilesPerOwner100
MaxFilesPerPropertyValue100
MaxOwners10
MaxPropertyValues10
MaxQuotas1000
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!

Keine Kommentare:

Kommentar veröffentlichen

Dieses Blog durchsuchen