OutlookがMAPIプロファイルまたはRPC over HTTP/Sプロファイルを使用しているかどうかを確認するVBScriptコードを作成する必要があります。
だから、誰が同じレジストリキーを決定するのか教えてもらえますか?
助けてください。
これはOutlook 2013で変更されました。
プロファイルはキーの下に保存されます:
HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\Profiles
どこ <version>
は次のいずれかです。
7.0
8.0
9.0
10.0
11.0
12.0
14.0
(sic!)15.0
16.0
上記のバージョン情報は this answer からコピーされました。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Simple MAPI-CMC
まず、Outlook 97-2010の場合、プロファイルはHKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles
。
Outlook 2013(サイドバイサイドインストールをサポート)以降、プロファイルはHKEY_CURRENT_USER\Software\Microsoft\Office\%version%\Outlook\Profiles
、ここで%version%はOutlook 2013では15.0、Outlook 2016では16.0などです。
低(拡張MAPI)レベルでは、RPC-over-HTTP(ROH)設定は、PR_PROFILE_RPC_PROXY_SERVER_FLAGSプロパティ(0x66230003)のROHFLAGS_USE_ROHビットによって決定されます。このプロパティは、グローバルプロファイルセクションと特定のExchangeストアプロファイルセクションで設定されます(Outlookは単一のプロファイルで複数のExchangeアカウントをサポートするようになったため)。
OutlookSpy でデータを確認できます-OutlookSpyリボンのIMAPISessionボタンをクリックし、OpenProfileSessionをクリックして、{C8B0DB13-05AA-1A10-9BB0-00AA002FC45A} pbGlobalProfileSectionGuid
コンボボックスからのエントリ。
拡張MAPIはVB(または.Net)から使用できないことに注意してください。 Redemption / Profman はオプションです。次のスクリプトを使用してすべてのプロファイルを列挙し、ROHが使用されているかどうかを確認できます。
PR_PROFILE_RPC_PROXY_SERVER_FLAGS = &H66230003
ROHFLAGS_USE_ROH = 1
set Profiles=CreateObject("ProfMan.Profiles")
for i = 1 to Profiles.Count
set Profile = Profiles.Item(i)
set GlobalProfSect = Profile.GlobalProfSect
Debug.Print "Profile: " & Profile.Name & " ------"
flags = GlobalProfSect.Item(PR_PROFILE_RPC_PROXY_SERVER_FLAGS)
If TypeName(flags) = "Long" Then
if (flags And ROHFLAGS_USE_ROH) = ROHFLAGS_USE_ROH Then
Debug.Print " ROH is used"
Else
Debug.Print " ROH is not used"
End If
Else
Debug.Print " No PR_PROFILE_RPC_PROXY_SERVER_FLAGS"
End If
next
既にOutlookを実行していて、現在のプロファイルがROHを使用していることを確認する場合は、 RDOSession .ExchangeConnectionProperties.UseROH
プロパティ:
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
MsgBox Session.ExchangeConnectionProperties.UseROH