2016-03-23 22 views
2

現在使用されているOutlook PSTファイルのすべてのパスを収集しようとしています。私は、次のコードは、これを行うことになって、インターネット上で見つけることができるものから:使用中のOutlook PSTファイル

$Outlook = New-Object -ComObject outlook.application 
$Namespace = $Outlook.GetNamespace("MAPI") 
$Namespace.Stores 
#or 
$Namespace.Session.Stores 

私はこれをしようとするたびに私は、次のエラーメッセージが表示されます。

An error occurred while enumerating through a collection: Exception from HRESULT: 0xEF640111. 

私はここで明らかに何かが足りないのですか?

+0

コード実行時にOutlookが実行されていますか? –

+0

はい、そうです。私はこのアクションを「許可」するよう求める小さなポップアップを見ることもできます – DarkLite1

答えて

0

をお試しくださいあなたがVPNをbehingているし、あなたのPSTファイルのパスの場所のいずれかに到達することができないときのように見えます。ドライブ文字は、たとえばVPNの背後に自動的にマップされないためです。

この場合、MS OutlookではPSTを開くこともできず、GUIでPSTファイルをクリックするだけでエラーがスローされます。

-1

問題

$outlook = New-Object -comObject Outlook.Application 
$outlook.Session.Stores | where { ($_.FilePath -like '*.PST') } | format-table DisplayName, FilePath -autosize 
0

レジストリ(それらはレジストリプロファイルセクションに格納されている)からのPSTのパスを取得することができます。テストとしてhttp://www.dimastr.com/redemption/profman_examples.htm#example2

、次の(Redemption)スクリプト(VB)を実行できますか?

skPstAnsi = 1 
    skPstUnicode = 2 
    set Session = CreateObject("Redemption.RDOSession") 
    Session.Logon 
    for each Store in Session.Stores 
    if (Store.StoreKind = skPstAnsi) or (Store.StoreKind = skPstUnicode) Then 
     Debug.Print Store.PstPath 
    End If 
    next 
+0

Thxしかし、私はPowerShellのコードを探しています。これに加えて、マップされたPSTファイルについてのみ報告しますか? – DarkLite1

+0

Outlookのプロファイルセクションでデータを解析することはできますが、そのためのサンプルコードはありません。 –

関連する問題