PowerShell zum effizienten Auffinden übergroßer OST-Dateien verwenden

In der heutigen digitalisierten Arbeitswelt ist die effektive Verwaltung von Speicherplatz auf Computersystemen von größter Bedeutung. Da wir uns immer mehr auf die digitale Kommunikation verlassen, ist ein Tool, auf das sich viele Fachleute verlassen, Microsoft Outlook. Bei längerer Verwendung können die OST-Dateien (Outlook Offline Storage Table) erheblich an Größe zunehmen und möglicherweise große Mengen an Speicherplatz belegen. Hier stellen wir ein PowerShell-Skript vor, das IT-Experten beim Auffinden von übergroßen OST-Dateienunterstützt

Hintergrund

Die OST-Datei ist im Wesentlichen eine Kopie der Postfächer von Exchange Server. Im Laufe der Zeit, wenn immer mehr Daten anfallen, können diese Dateien anschwellen, was zu Problemen bei der Speicherung führt. Vor allem für IT-Expert:innen und Managed Service Provider (MSPs) ist es wichtig, solche großen Dateien im Auge zu behalten, um eine optimale Systemleistung zu gewährleisten und den Speicher effizient zu verwalten. Es geht nicht nur darum, Speicherplatz freizugeben, sondern auch darum, das Nutzerverhalten zu verstehen, die Ressourcen zu optimieren und potenziellen Problemen vorzubeugen.

Das Skript

<#
.SYNOPSIS
    Find large OST files in the user's folder or recursively under C:.
.DESCRIPTION
    Find large OST files in the user's folder or recursively under C:.
.PARAMETER MinSize
    The minimum file size. This expects the file size to be in gigabytes.
.PARAMETER AllFolders
    Will search all folders under C:.
.EXAMPLE
     -MinSize 50
    Search for OST files larger than 50GB in each user's Outlook folder.
.EXAMPLE
     -AllFolders -MinSize 50
    Search for OST files larger than 50GB under C: recursively.
.OUTPUTS
    String[]
.NOTES
    Minimum OS Architecture Supported: Windows 10, Windows Server 2016
    Exit code 1: If at least 1 OST was found larger than MinSize
    Exit code 0: If no OST's where found larger than MinSize
    Release Notes:
    Initial Release
By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#>
[CmdletBinding()]
param (
    [Parameter()]
    [double]
    $MinSize = 50,
    [switch]
    $AllFolders
)

begin {
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
    }
}
process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }
    $script:Found = $false

    if ($AllFolders) {
        $FoundFiles = Get-ChildItem C: -Filter *.ost -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { $_.Length / ($MinSize * 1GB) -gt 1 }
        $FoundFiles | Select-Object FullName, Length | ForEach-Object {
            $Name = $_.FullName
            $Size = $_.Length
            Write-Host "$Name $Size bytes"
        }
        # If you wish to automatically remove the file(s) uncomment the line below. Do note that this is permanent! Make backups!
        # $FoundFiles | Remove-Item -Force -Confirm:$false
        if ($FoundFiles) {
            $script:Found = $true
        }
    }
    else {
        $UsersFolder = "C:Users"
        $Outlook = "AppDataLocalMicrosoftOutlook"
        Get-ChildItem -Path $UsersFolder | ForEach-Object {
            $User = $_
            $Folder = "$UsersFolder$User$Outlook"
            if ($(Test-Path -Path $Folder)) {
                $FoundFiles = Get-ChildItem $Folder -Filter *.ost | Where-Object { $_.Length / ($MinSize * 1GB) -gt 1 }
                $FoundFiles | Select-Object FullName, Length | ForEach-Object {
                    $Name = $_.FullName
                    $Size = $_.Length
                    Write-Host "$Name $Size bytes"
                }
                # If you wish to automatically remove the file(s) uncomment the line below. Do note that this is permanent! Make backups!
                # $FoundFiles | Remove-Item -Force -Confirm:$false
                if ($FoundFiles) {
                    Write-Verbose "Found"
                    $script:Found = $true
                }
            }
        }
    }

    if ($script:Found) {
        exit 1
    }
    exit 0
}
end {}

 

Zugriff auf über 300 Skripte im NinjaOne Dojo

Zugang erhalten

Detailansicht

Das Skript kann in mehrere Schlüsselbereiche unterteilt werden:

  • Synopsis und Beschreibung: Gibt einen Überblick über den Zweck des Skripts, der darin besteht, große OST-Dateien entweder im Ordner eines Benutzers oder rekursiv unter C: zu finden.
  • Parameter: Bestimmt die Einzelheiten der Suche. Dazu gehört die minimale Dateigröße (in GB) und ob alle Ordner unter C: durchsucht werden sollen.
  • Elevation Check: Bevor das Skript mit der Dateisuche beginnt, prüft es, ob Sie über administrative Rechte verfügen. Ohne diese Rechte kann das Skript nicht in tiefere Systemebenen vordringen.
  • Logik der Dateisuche: Je nach den gewählten Parametern sucht das Skript entweder in allen Ordnern unter C: nach OST-Dateien, die größer als die angegebene Größe sind, oder es schränkt die Suche auf die Outlook-Ordner der einzelnen Benutzer:innen ein.
  • Output: Wenn übergroße OST-Dateien gefunden werden, gibt das Skript ihren vollständigen Pfad und ihre Größe in Bytes aus. Außerdem enthält das Skript auskommentierte Zeilen für das Löschen dieser Dateien – diese Aktion liegt im Ermessen des IT-Experten.

Potenzielle Anwendungsfälle

Stellen Sie sich einen IT-Administrator, Jane, in einem großen Unternehmen vor. Sie erhält von verschiedenen Abteilungen Beschwerden über Systemverzögerungen und Leistungseinbußen. Nach einigen Diagnosetests stellt Jane Speicherplatzprobleme fest – zahlreiche große Dateien, die wichtigen Speicherplatz belegen. Mit diesem Skript kann Jane übergroße OST-Dateien schnell ausfindig machen und die beste Vorgehensweise bestimmen, sei es das Archivieren, Löschen oder Verschieben der Dateien.

Vergleiche

Es gibt zwar GUI-basierte Tools und Software, die Festplattenanalysen bereitstellen, der Vorteil dieses PowerShell-Skripts liegt jedoch in seiner Spezifität und seinem Automatisierungspotenzial. Es zielt direkt auf OST-Dateien ab und kann in größere Automatisierungs-Workflows integriert werden, im Gegensatz zu vielen Tools von Drittanbietern, die breitere Übersichten bieten, ohne dass derselbe Grad an Anpassbarkeit gegeben ist.

FAQs

  • Kann dieses Skript die gefundenen OST-Dateien löschen?
    Während das Skript große OST-Dateien identifiziert und auflistet, gibt es eine auskommentierte Zeile zum Löschen. Wenn diese Option deaktiviert wird, entfernt das Skript die identifizierten Dateien.
  • Ist der Größenparameter nur in GB angegeben?
    Ja, das Skript erwartet die Angabe der Dateigröße in Gigabyte.

Auswirkungen

Das Auffinden und Verwalten von großen OST-Dateien ist mehr als nur eine Speicherübung. Sie umfasst die IT-Sicherheit. Übergroße OST-Dateien können ein Hinweis auf Datenhortung oder sogar Datenschutzverletzungen sein, bei denen große Datenmengen exportiert werden. Durch eine proaktive Verwaltung dieser Dateien können potenzielle Risiken gemindert werden.

Empfehlungen

  • Sichern Sie immer Ihre Daten, bevor Sie Skripte ausführen, die möglicherweise Dateien löschen können.
  • Führen Sie solche Skripte routinemäßig aus, um eine optimale Systemleistung zu erhalten.
  • Dekommentieren Sie die Löschoption nur, wenn Sie sich über die Auswirkungen im Klaren sind.

Abschließende Überlegungen

Die Verwaltung großer Dateien, insbesondere von OST-Dateien, kann eine entmutigende Aufgabe sein. Aber Tools wie NinjaOne bieten robuste Lösungen für das gesamte IT-Management. In Verbindung mit maßgeschneiderten Skripten wie dem hier beschriebenen können Fachleute Systemeffizienz, Speicheroptimierung und Risikominimierung in der sich ständig weiterentwickelnden IT-Landschaft sicherstellen.

Nächste Schritte

Der Aufbau eines effizienten und effektiven IT-Teams erfordert eine zentralisierte Lösung, die als einheitliches Tool zur Bereitstellung von IT-Dienstleistungen fungiert. NinjaOne ermöglicht es IT-Teams, alle Geräte zu überwachen, zu verwalten, zu sichern und zu unterstützen, unabhängig vom Standort, ohne dass eine komplexe Infrastruktur vor Ort erforderlich ist.

Erfahren Sie mehr über NinjaOne Remote Script Deployment, sehen Sie sich eine Live-Tour an oder starten Sie Ihre kostenlose Testversion unserer NinjaOne Plattform.

Kategorien:

Das könnte Sie auch interessieren

×

Sehen Sie NinjaOne in Aktion!

Mit dem Absenden dieses Formulars akzeptiere ich die Datenschutzerklärung von NinjaOne.

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche „Ich akzeptiere“ klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird „wie gesehen“ und „wie verfügbar“ bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).