violak
Goto Top

Outlook Archivierung mit Powershell setzen

Guten Morgen,

ich habe einen User, welcher eine große Ordnerstruktur in sein Outlook gebastelt hat.

Auf diese Ordnerstruktur hat er auf verschiedene Ordner die Outlookarchivierung eingeschaltet.

Ziel und Sinn der Aktion war es allerdings, das gesamte Postfach zu archivieren und nicht mal hier und da einen Ordner.

Kann ich irgendwie per Powershell rausfinden, welche Ordner er da archiviert bzw. wo er von der Standardeinstellung abweicht?

Das würde schon einiges erleichtern.

Für einen Tipp wäre ich Euch dankbar.

Content-ID: 576245

Url: https://administrator.de/forum/outlook-archivierung-mit-powershell-setzen-576245.html

Ausgedruckt am: 23.12.2024 um 17:12 Uhr

144260
144260 02.06.2020 aktualisiert um 09:05:52 Uhr
Goto Top
Warum man sich für eine Archivierung auf die Einstellungen am Client verlässt erzeugt bei mir großes Unbehagen, aber naja bidde ...
https://answers.microsoft.com/en-us/msoffice/forum/all/setting-autoarchi ...
colinardo
Lösung colinardo 05.06.2020 aktualisiert um 09:34:11 Uhr
Goto Top
Servus,
<#
    Reset outlook archive settings to default retention settings for whole folder structure
#>

[void][reflection.assembly]::LoadWithPartialName("microsoft.visualbasic")  
$objOL = [microsoft.visualbasic.interaction]::GetObject($null,"Outlook.Application")  
if (!$objOL){$objOL = New-Object -Com Outlook.Application}

# recurse into folder structure
$recursefolders = {
    param($folder)
    try{
        $storage = $folder.GetStorage("IPC.MS.Outlook.AgingProperties",2)  
        if ($storage.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x6857000B") -ne $null){  
            if ($storage.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x6857000B") -ne $false -or $storage.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x685E0003") -ne 2){  
                [pscustomobject]@{FolderName = $folder.FolderPath;Action="ResetToDefaultArchiveSettings"}  
                $storage.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x6857000B",$false)  
                $storage.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x685E0003",2)  
                $storage.Save()
            }
        }
    }catch{
    }
    $folder.Folders | %{.$recursefolders $_}   
}

# call recursive function from root of the default mapi store
.$recursefolders $objOL.GetNamespace("MAPI")  

# cleanup
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($objOL)
Grüße Uwe
violak
violak 09.06.2020 um 07:50:27 Uhr
Goto Top
Guten Morgen Uwe,

ich verstehe das doch richtig, dass das eine .VBS Datei ist oder? Und diese über die Eingabeaufforderung gestartet wird oder?

Weil er bei mir einen Fehler direkt beim Starten auswirft, nicht das ich dich da jetzt falsch verstehe
colinardo
colinardo 09.06.2020 aktualisiert um 08:09:51 Uhr
Goto Top
Servus.
Zitat von @violak:
ich verstehe das doch richtig, dass das eine .VBS Datei ist oder?
Nein, du hattest nach Powershell in deiner Frage gefragt, also ist das auch logischerweise Powershell-Code, sieht man doch schon an den Variablen.
violak
violak 09.06.2020 um 08:13:34 Uhr
Goto Top
UPS Sorry zu früh am Morgen ;)

Also ich habe das mal in die ISE gepackt und ausgeführt, in Shell Fenster ist so nix zu sehen, dass da was passiert.

Die ISE läuft und läuft und läuft aber man sieht nicht, dass da irgendein Ergebnis bei rumkommt.

Soll das so sein oder mache ich noch etwas Falsch?
colinardo
Lösung colinardo 09.06.2020 aktualisiert um 08:19:44 Uhr
Goto Top
Warte bis es fertig ist, und prüfe ob im Hintergrund von Outlook nach Erlaubnis gefragt wird, und bestätige.
144260
144260 09.06.2020 aktualisiert um 08:22:01 Uhr
Goto Top
Zur Info an den TO, have den Code auch mal kurz getestet, läuft hier ...
violak
violak 09.06.2020 um 08:21:39 Uhr
Goto Top
Jip läuft bei mir auch, war anscheinend nur der Rechner, welcher etwas lahm war.

Hab vielen Dank, dass hilft echt weiter face-smile.
144260
144260 09.06.2020 aktualisiert um 08:25:35 Uhr
Goto Top
Wie wär's dann wenn du den Kommentar mit dem Code als Lösung markierst und nicht irgendeine Antwort?! Jemand anders der hier vorbei kommt sucht ja nach der tatsächlichen Lösung.
violak
violak 09.06.2020 um 08:28:09 Uhr
Goto Top
eine kleine Frage noch.

Was wäre denn, wenn ich die Archivierung abschalten möchte? Also auf "Elemente in diesem Ordner nicht archivieren" setzen möchte?

Mit welchem Parametern steuert man das denn? Hast du dazu auch einen Tipp?
violak
violak 09.06.2020 um 08:30:17 Uhr
Goto Top
@ Killpid, hab ich gemacht, danke für den Hinweis.

@colinardo,

habe folgende beiden Parameter auf 1 gesetzt

if ($storage.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x6857000B") -ne $false -or $storage.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x685E0003") -ne 1){


$storage.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x685E0003",1)

dann schaltet er die Archivierung komplett ab face-smile
144260
144260 09.06.2020 aktualisiert um 08:37:33 Uhr
Goto Top
Sowas setzt man dann besser gleich per Office GPO
https://www.veritas.com/support/en_US/article.100038593
Das übersteuert nämlich alle individuellen Einstellungen automatisch.