Ich arbeite an einem Projekt, das das Lesen von vielen Outlook.pst-Dateien umfasst.Entfernen Sie Kennwortschutz aus einer Outlook-PST-Datei programmgesteuert
Diese Dateien sind alle passwortgeschützt, aber ich habe das Passwort in Frage. Das Problem ist, dass es sehr mühsam ist, jede Datei in Outlook zu öffnen und das Passwort einzugeben, um die Daten zu lesen.
Jetzt denke ich, wenn es eine Möglichkeit gibt, ein Skript zu erstellen, das jede .pst-Datei für mich automatisch öffnet, gibt das Passwort ein und speichert die Datei erneut ohne das Passwort.
Ich habe googlen und scheint keine Lösung für mein Problem zu finden, sieht aus wie die MAPI outlook.application Schnittstelle schlecht dokumentiert ist. Bisher habe ich ein Powershell-Skript tun dies mit einer Excel-Anwendung gesehen von technet
$comments = @'
Script name: Remove-Password.ps1
Created on: Tuesday, July 03, 2007
Author: Kent Finkle
Purpose: How can I use Windows Powershell to
Remove the Password When Opening an Excel Spreadsheet?
'@
#-----------------------------------------------------
function Release-Ref ($ref) {
([System.Runtime.InteropServices.Marshal]::ReleaseComObject(
[System.__ComObject]$ref) -gt 0)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}
#-----------------------------------------------------
$xl = new-object -comobject excel.application
$xl.Visible = $True
$xl.DisplayAlerts = $False
$wb = $xl.Workbooks.Open("C:\Scripts\Test.xls",0,$False,1,"%reTG54w")
$wb.Password = ""
$a = $wb.SaveAs("C:\Scripts\Test.xls")
$a = Release-Ref($wb)
$a = Release-Ref($xl)
Möglicherweise könnte ich dies gilt mit etwas MAPI ähnlich wie diese
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace("MAPI");
$fSaveMe = $ns.GetDefaultFolder($olFolderInbox).Folders.Item("Save Me")
$fSaveMe.Items | foreach { [void]$_.Move($ns.Folders.Item("Legal")) }
Gibt es jemanden, der eine hatte ähnliches Problem? Die mögliche Lösung muss nicht in PowerShell sein, es kann in Python, Perl, Java, C# oder so ziemlich alles sein, solange es die Arbeit erledigt :)