3

メールのお気に入りフォルダーにパブリック フォルダーの予定表を表示するプロセスを自動化する方法は?

ログイン スクリプトまたはグループ ポリシーのいずれかによって実行したかったのです。

Windows Server 2008 R2 と Windows Server 2003 R2 を実行しているドメイン コントローラで Microsoft Exchange Server 2007 を使用しています。

すべてのワークステーション システムには、Outlook 2010 または Outlook 2007 が搭載されています。

これを検索しているときに、以下のスクリプトを見つけましたが、このスクリプト (既にパスを変更しています) によって、パブリック フォルダー カレンダーを作成して、パブリック フォルダーのお気に入りに表示できますが、メールのお気に入りフォルダーには表示できません。

Const olPublicFoldersAllPublicFolders = 18
Dim olkApp, olkSes, olkFolder
Set olkApp = CreateObject("Outlook.Application")
Set olkSes = olkApp.GetNameSpace("MAPI")
'Change the profile name on the next line'
olkSes.Logon "Outlook"
'Change the folder name on the next line.  Repeat the next two lines for each folder         
 you want to add.'
Set olkFolder =     
olkSes.GetDefaultFolder(olPublicFoldersAllPublicFolders).Folders("Public   
calender").Folders("p cal")
olkFolder.AddToPFFavorites
'Change the folder name on the next line.  Repeat the next two lines for each folder     
you want to add.'
Set olkFolder = OpenOutlookFolder("Public Folders\Favorites\P cal")
AddFavoriteFolder olkFolder
olkSes.Logoff
Set olkApp = Nothing
Set olkSes = Nothing
Set olkFolder = Nothing
WScript.Quit

Sub AddFavoriteFolder(olkFolder)
' Purpose: Add a folder to Favorite Folders.'
' Written: 5/2/2009'
' Author:  BlueDevilFan'
' Outlook: 2007'
Const olModuleMail = 0
Const olFavoriteFoldersGroup = 4
    Dim olkPane, olkModule, olkGroup
Set olkPane = olkApp.ActiveExplorer.NavigationPane
Set olkModule = olkPane.Modules.GetNavigationModule(olModuleMail)
Set olkGroup =     
olkModule.NavigationGroups.GetDefaultNavigationGroup(olFavoriteFoldersGroup)
olkGroup.NavigationFolders.Add olkFolder
Set olkPane = Nothing
Set olkModule = Nothing
Set olkGroup = Nothing
End Sub

Function OpenOutlookFolder(strFolderPath)
' Purpose: Opens an Outlook folder from a folder path.'
' Written: 4/24/2009'
' Author:  BlueDevilFan'
' Outlook: All versions'
Dim arrFolders, varFolder, bolBeyondRoot
On Error Resume Next
If strFolderPath = "" Then
    Set OpenOutlookFolder = Nothing
Else
    Do While Left(strFolderPath, 1) = "\"
        strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
    Loop
    arrFolders = Split(strFolderPath, "\")
    For Each varFolder In arrFolders
        Select Case bolBeyondRoot
            Case False
                Set OpenOutlookFolder = olkSes.Folders(varFolder)
                bolBeyondRoot = True
            Case True
                Set OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder)
        End Select
        If Err.Number <> 0 Then
            Set OpenOutlookFolder = Nothing
            Exit For
        End If
    Next
End If
On Error GoTo 0
End Function
4

1 に答える 1

1

これはできません。[メールのお気に入り] ビューには、メール フォルダーまたは検索フォルダーのみを追加できます。Outlook のヘルプを引用すると、お気に入りには「受信トレイ、送信済みアイテム、検索フォルダーなどのフォルダーへのショートカットが含まれています。フォルダーを追加、削除、整理することができます [...]メールフォルダーにより簡単にアクセスできます」(強調)。

MSFT の観点からは、これは論理的に一貫しています。

  • パブリック オブジェクトをパブリック フォルダーのお気に入りに追加することは、ユーザーが頻繁に行うことがないと予想されるアクティビティの種類です。そのため、ログイン スクリプトでそれを処理するのは適切ではありません。これは、プロジェクトのステータスやマニュアルを含むフォルダなど、個人の情報ライブラリにリソースを追加するようなものです。
  • メールのお気に入りにメール フォルダを追加することは、頻繁に使用されるアイテムに対する簡単で汚いトリックです。これは、ブックマークの追加に似ています。

全員がパブリック フォルダにアクセスする必要がある多数のユーザーを設定する必要がある場合、それをログイン スクリプトで処理するのは理にかなっており、それで問題ないと主張することができます。メールフォルダーではなく、パブリックフォルダーのお気に入り....そして、お気に入りが既に存在する場合は、お気に入りを作成しないようにするコードが必要です。

于 2012-09-07T19:43:59.027 に答える