web-dev-qa-db-ja.com

Outlookプロファイルを決定するレジストリキー

OutlookがMAPIプロファイルまたはRPC over HTTP/Sプロファイルを使用しているかどうかを確認するVBScriptコードを作成する必要があります。

だから、誰が同じレジストリキーを決定するのか教えてもらえますか?

助けてください。

10
Tejas

これはOutlook 2013で変更されました。

プロファイルはキーの下に保存されます:

HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\Profiles

どこ <version>は次のいずれかです。

  • Office 97 – 7.0
  • Office 98 – 8.0
  • Office 2000 – 9.0
  • オフィスXP – 10.0
  • Office 2003 – 11.0
  • Office 2007 – 12.0
  • Office 2010 – 14.0(sic!)
  • Office 2013 – 15.0
  • Office 2016 – 16.0

上記のバージョン情報は this answer からコピーされました。

19
robotox
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
10
Akshay Joy

まず、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