2010-11-26 21 views
1

多くのOutlook.pstファイルを読み取るプロジェクトに取り組んでいます。Outlookの.pstファイルからプログラムでパスワード保護を削除する

これらのファイルはすべてパスワードで保護されていますが、問題のパスワードがあります。問題は、Outlookの各ファイルを開いてデータを読み取るためにパスワードを入力するのは非常に退屈なプロセスだということです。

私はそれぞれの.pstファイルを自動的に開き、パスワードを入力してパスワードなしでファイルを再度保存するスクリプトを作成する方法があると思っています。

私は周りにグーグルで行っているし、私の問題の解決策を見つけるように見えない、MAPIのoutlook.applicationインターフェイスのように見えます。これまでのところ私はおそらく私がこの

$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")) } 

に似た何かをMAPIにこれを適用することができPowerShellスクリプトが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) 

からExcelアプリケーションでこれをやって見てきました持っていた誰もがあります同様の問題?潜在的な解決策は、PowerShellにする必要はありませんが、それはPython、Perl、Java、C#またはそれが仕事を終わらせる限り、何でもできます:)

答えて

0

これは、 c(++)またはdelphiでのみ可能です。代わりの(とはるかに簡単です)は、comオブジェクト内の拡張mapiをラップするRedemptionです。具体的には、AddPstStoreWithPasswordメソッドのRDOStores

を参照してください。
関連する問題