Tuesday, October 29, 2013

Locate an Exchange Public Folder from its Email address

Open the Active Directory Users and Computers tool from Control Panel \ Administrative tools or running below command from Start > Run...

 dsa.msc

Under Active Directory Users and Computers, Right click on the domain and click on Find

In the find window click on the Find choice and pick Custom Search; Click on the Advanced tab; Enter in the LDAP Query that follows this syntax:
(proxyAddresses=SMTP:User@domain)



Make sure that the columns in this window include the Distinguished Name. In order to customize the view, click View > Choose Columns.

Now open ADS Edit tool and Right click on the top ADSI Edit folder and choose "Connect to".



Type in the Connection Point the Distinguished name of the folder; Click OK
Example: CN=User,CN=Microsoft Exchange System Objects,DC=domain,DC=com



Expand out the last entry that you just added in this window; Right click on the CN name and open the properties.



From this window you will have access to all properties of the folder. Including the path of the folder you are looking for. The attribute name you're looking for is folderPathName, this will contain the path to the folder you want to check.

Use caution when using ADSI Edit!!
Ler o texto inteiro ►

Missing Folders in Outlook

This is a very common issue in my current work. Out of the blue, a folder in user's Outlook vanishes, simply gone. There are two possibilities here: Start Outlook with resetfolders switch parameter or find the hidden folder and bring it back.

For the first option, you may check this post with info about all Outlook switches or just follow example below.
 outlook.exe /resetfolders

But this doesn't always work, so here's a more hardcore way to fix it. You'll need to use MFCMAPI tool, which I've already presented in a previous post, in order to find the folder.

Once you have MFCMAPI downloaded, you can just execute it - no install needed - Skip the first window by clicking OK, and in the main window click Session, Logon and Display Store Table.


Choose a profile previously created or create a new one.


Double-click the Mailbox in the list.


In the new window that will show up, you'll be able to browse the entire content of the mailbox. Be very careful!!! There's no "undo" for any mess you do here.

In the left pane, browse to the Top of Information Store, and then you'll probably find the folder under it - if you don't find the folder here (and you previously checked the Deleted Items folder and Recover Deleted Items), it's probably gone indeed - nothing you can do. If you find the folder, select it, and find the property in the right pane named PR_ATTR_HIDDEN, double-click it.


You'll very likely find this attribute set as True (Boolean checkbox will be checked as depicted below). In order to bring the folder back, you just need to make sure this checkbox is unchecked.


 That done, have the user to restart Outlook and voilà :)
Ler o texto inteiro ►

You might also like...

I've been searching for a Blogger plugin that would add links related to each of my posts at the end of them, and today I found this one I found really cool, and easy to use, it's called LinkWithin.

All you need to do is to access www.linkwithin.com, and fill the form with simple info about your blog:


Next, it will give you a really easy way to add the plugin to your blog.


And finally, you'll just need to drag the widget from the rigth-bar (default place) to the position just below your posts:



Aaand done, you'll have a list with related topics by the end of each of your posts - With thumbnails, if it's your blog's case, or just in text like mine as I don't post too much images.




Ler o texto inteiro ►

Outlook Switches

Today I'll talk about a very useful tool provided by Outlook that has saved me in several different issues. I'm talking about the startup parameters for Outlook, or Outlook Switches.

You may not notice, but every time you start Outlook, you're invoking (probably always using the desktop / start menu / taskbar shortcuts) Outlook.exe command. This command can be executed in several different ways, by using the available switches. I'm listing all of them below, first the most important ones in my opinion and then the rest of them.

Most commonly used:


/resetfolders

Restores missing folders at the default delivery location. Very useful whenever users have any missing folders.
 outlook.exe /resetfolders


/resetfoldernames

Resets default folder names (such as Inbox or Sent Items) to default names in the current Office user interface language.
For example, if you first connect to your mailbox in Outlook by using a Russian user interface, the Russian default folder names cannot be renamed. To change the default folder names to another language, such as Japanese or English, you can use this switch to reset the default folder names after you change the user interface language or install a different language version of Outlook.
 outlook.exe /resetfoldernames


/cleanautocompletecache

Removes all names and e-mail addresses from the Auto-Complete list.
 outlook.exe /cleanautocompletecache


/cleanfreebusy

Clears and regenerates free/busy information. This switch can be used only when you are able to connect to the server that runs Exchange.
 outlook.exe /cleanfreebusy


/cleanrules

Starts Outlook and deletes client-based and server-based rules.
 outlook.exe /cleanrules


/cleanserverrules

Starts Outlook and deletes server-based rules.
 outlook.exe /cleanserverrules


/cleanclientrules

Starts Outlook and deletes client-based rules.
 outlook.exe /cleanclientrules


/cleanreminders

Clears and regenerates reminders. Used many times when users couldn't get rid of reminders.
 outlook.exe /cleanreminders


/profiles

Opens the Choose Profile dialog box regardless of the Options setting on the Tools menu. Useful for troubleshooting more than one profile.

 outlook.exe /profiles


/profile profilename

Loads the specified profile. If your profile name contains a space, enclose the profile name in quotation marks (" "). Useful for quickly switching between profiles when troubleshooting.

 outlook.exe /profile NewProfile


Other switches:

/c messageclass

Creates a new item of the specified message class (Outlook forms or any other valid MAPI form).
 outlook.exe /c ipm.note          --> new email
 outlook.exe /c ipm.appointment   --> new appointment
 outlook.exe /c ipm.activity      --> new journal entry
 outlook.exe /c ipm.contact       --> new contact
 outlook.exe /c ipm.stickynote    --> new note
 outlook.exe /c ipm.task          --> new task

/a

Creates an item with the specified file as an attachment.
If no item type is specified, IPM.Note (new email message) is assumed. Cannot be used with message classes that are not based on Outlook.
 outlook.exe /a "c:\my documents\labels.doc"
 outlook.exe /a "c:\my documents\labels.doc" /c ipm.appointment


/altvba otmfilename

Opens the VBA program specified in otmfilename, instead of %appdata%\microsoft\outlook\vbaproject.otm.

 NOTE

This command line switch is only available if the following Windows registry DWORD value is set to 1. HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Security\EnableAltVba
 outlook.exe /altvba AlternativeVPAProject.otm


/checkclient

Prompts for the default manager of e-mail, news, and contacts.
 outlook.exe /checkclient


/cleancategories

Deletes any custom category names that you have created. Restores categories to the default names.
 outlook.exe /cleancategories


/cleanconvongoingactions

Deletes the Conversations Actions Table (CAT). CAT entries for a conversation thread usually expire 30 days after no activity. The command-line switch clears all conversation tagging, ignore, and moving rules immediately stopping any additional actions.
 outlook.exe /cleanconvongoingactions


/cleandmrecords

Deletes the logging records saved when a manager or a delegate declines a meeting.
 outlook.exe /cleandmrecords


/cleanfinders

Resets all Search Folders in the Microsoft Exchange mailbox for only the first profile opened.
 outlook.exe /cleanfinders


/cleanfromaddresses

Removes all manually added From entries from the profile.
 outlook.exe /cleanfromaddresses


/cleanmailtipcache

Removes all MailTips from the cache.
 outlook.exe /cleanmailtipcache


/cleanroamedprefs

All previous roamed preferences are deleted and copied again from the local settings on the computer where this switch is used. This includes the roaming settings for reminders, free/busy grid, working hours, calendar publishing, and RSS rules.
 outlook.exe /cleanroamedprefs


/cleansharing

Removes all RSS, Internet Calendar, and SharePoint subscriptions from Account Settings, but leaves all the previously downloaded content on your computer. This is useful if you cannot delete one of these subscriptions within Outlook 2010.
 outlook.exe /cleansharing


/cleansniff

Overrides the programmatic lockout that determines which of your computers (when you run Outlook at the same time) processes meeting items. The lockout process helps prevent duplicate reminder messages. This switch clears the lockout on the computer it is used. This enables Outlook to process meeting items.
 outlook.exe /cleansniff


/cleansubscriptions

Deletes the subscription messages and properties for subscription features.
 outlook.exe /cleansubscriptions


/cleanviews

Restores default views. All custom views that you created are lost.
 outlook.exe /cleanviews


/embedding

Used without command-line parameters for standard OLE co-create.
 outlook.exe /embedding


/f msgfilename

Opens the specified message file (.msg) or Microsoft Office saved search (.oss).
 outlook.exe /f MessageName


/finder

Opens the Advanced Find dialog box.
 outlook.exe /finder


/hol holfilename

Opens the specified .hol file.
 outlook.exe /hol HolFileName


/ical icsfilename

Opens the specified .ics file.
 outlook.exe /ical ICSFileName.ics


/importNK2

Imports the contents of an .nk2 file which contains the nickname list that is used by both the automatic name checking and Auto-Complete features.
 outlook.exe /importNK2 NK2FileName.nk2


/importprf profilename

Starts Outlook and opens/imports the defined MAPI profile (*.prf). If Outlook is already open, queues the profile to be imported on the next clean start.
 outlook.exe /importprf Profile.prf


/launchtraininghelp assetid

Opens a Help window with the Help topic specified in assetid displayed.
 outlook.exe /launchtraininghelp AssetID


/m emailname

Provides a way for the user to add an e-mail name to the item. Only works together with the /c command-line parameter.
 outlook.exe /c ipm.note /m EmailName


/nopreview

Starts Outlook with the Reading Pane off.
 outlook.exe /nopreview


/p msgfilename

Prints the specified message (.msg).
 outlook.exe /p MessageFile.msg


/promptimportprf

Same as /importprf except that a prompt appears and the user can cancel the import.
 outlook.exe /promptimportprf


/recycle

Starts Outlook by using an existing Outlook window, if one exists.
 outlook.exe /recycle


/remigratecategories

Starts Outlook and starts the following commands on the default mailbox:
Upgrades colored For Follow Up flags to Outlook 2010 color categories.
Upgrades calendar labels to Outlook 2010 color categories.
Adds all categories used on non-mail items into the Master Category List

NOTE

This is the same command as Upgrade to Color Categories in each Outlook mailbox properties dialog box.
 outlook.exe /remigratecategories


/resetformregions

Empties the form regions cache and reloads the form region definitions from the Windows registry.
 outlook.exe resetformregions


/resetnavpane

Clears and regenerates the Navigation Pane for the current profile.
 outlook.exe /resetnavpane


/resetquicksteps

Restores the default Quick Steps. All user-created Quick Steps are deleted.
 outlook.exe /resetquicksteps


/resetsearchcriteria

Resets all Instant Search criteria so that the default set of criteria is shown in each module.
 outlook.exe /resetsearchcriteria


/resetsharedfolders

Removes all shared folders from the Navigation Pane.
 outlook.exe /resetsharedfolders


/resettodobar

Clears and regenerates the To-Do Bar task list for the current profile. The To-Do Bar search folder is deleted and re-created.
 outlook.exe /resettodobar


/restore

Attempts to open the same profile and folders that were open prior to an abnormal Outlook shutdown.
 outlook.exe /restore


/rpcdiag

Opens Outlook and displays the remote procedure call (RPC) connection status dialog box.
 outlook.exe /rpcdiag


/safe

Starts Outlook without the Reading Pane or toolbar customizations. Both native and managed Component Object Model (COM) add-ins are turned off.
 outlook.exe /safe


/safe:1

Starts Outlook with the Reading Pane off.
 outlook.exe /safe:1


/safe:3

Both native and managed Component Object Model (COM) add-ins are turned off.
 outlook.exe /safe:3


/select foldername

Starts Outlook and opens the specified folder in a new window. For example, to open Outlook and display the default calendar, use: "c:\program files\microsoft office\office14\outlook.exe" /select outlook:calendar.

 outlook.exe /select outlook:calendar


/share 

Specifies a sharing URL to connect to Outlook. For example, use stssync://URL to connect a SharePoint list to Outlook.
 outlook.exe /share feed://URL/filename
 outlook.exe /stssync://URL
 outlook.exe /web://URL/filename


/sniff

Starts Outlook, forces a detection of new meeting requests in the Inbox, and then adds them to the calendar.
 outlook.exe /sniff


/t oftfilename

Opens the specified .oft file.
 outlook.exe /t OFTFileName.oft


/v vcffilename

Opens the specified .vcf file.
 outlook.exe /v VCFFileName.vcf


/vcal vcsfilename

Opens the specified .vcs file.
 outlook.exe /vcal VCSFileName.vcs


See ya!

More info:
Command-line switches for Outlook 2010
Ler o texto inteiro ►

Tuesday, October 22, 2013

Public Folders Permissions on Exchange 2007/2010

I used to work with Exchange System Manager when managing permissions on Exchange Public Folders, but last week got in trouble when in need to do it on our recently migrated to Exchange 2007 PFs. Turns out that Exchange Management Console doesn't seem to have any feature to manage the Public Folders permissions, so we need to use Power Shell in order to do it. Below are the cmdlets that will help us with that:

To add administrative permissions:

  Add-PublicFolderAdministrativePermission -Identity "\FolderPath" -AccessRights ACCESSRIGHTS -User USERNAME

-AccessRights parameter value may be:
  • None
  • ModifyPublicFolderACL
  • ModifyPublicFolderAdminACL
  • ModifyPublicFolderDeletedItemRetention
  • ModifyPublicFolderExpiry
  • ModifyPublicFolderQuotas
  • ModifyPublicFolderReplicaList
  • AdministerInformationStore
  • ViewInformationStore
  • AllExtendedRights
To add client permissions:

  Add-PublicFolderClientPermission -Identity "\FolderPath" -AccessRights ACCESSRIGHTS -User USERNAME

-AccessRights parameter value may be:
  • ReadItems
  • CreateItems
  • EditOwnedItems
  • DeleteOwnedItems
  • EditAllItems
  • DeleteAllItems
  • CreateSubfolders
  • FolderOwner
  • FolderContact
  • FolderVisible
To add send as permissions (for mail enabled public folders):

  Add-ADPermission "\All Public Folders\FolderPath" -User "USERNAME" -Extendedrights "Send As"

Here comes the complicated part...

In order to recursively add permissions to a folder and its subfolders, we'll need to use a script we'll find in Exchange Server: AddUsersToPFRecursive.ps1, however, this script will remove the user's permissions before adding the new ones, and that will require confirmation, which will be a pain if we're talking about too many subfolders (believe me, in my case there were hundreds of them). So I've made a small change in the script and renamed AddUsersToPFRecursive-No-Confirm.ps1 to keep the original.

All you need to do in order to remove the confirmation is to find this line:

  $permission | remove-PublicFolderClientPermission -identity $_.Identity -server $_.OriginatingServer

And add "Confirm:$false" in the end.

  $permission | remove-PublicFolderClientPermission -identity $_.Identity -server $_.OriginatingServer -Confirm:$false

Then save the script with a new name as I did, or one you prefer.

Once you have it done, you just need to call the script from the Shell console as usual:

  AddUsersToPFRecursive-No-Confirm.ps1 -TopPublicFolder "'\Europe\France'" -User "LAURENT_BARONI" -Permission Owner

** Note that I've put quotes " and an apostrophe ' on the parameter -TopPublicFolder. That's not a typo, don't ask me why, but this was the only way I could make it work. But it works, I promise :)

More info:
Add-PublicFolderAdministrativePermission cmdlet
Ler o texto inteiro ►

Moving Mailboxes in Exchange 2007 and 2010 via PowerShell - What is different?

Exchange 2010 treats quite differently mailbox moves than 2007 version. We were used to use Move-Mailbox cmdlet in order to move mailboxes across servers/databases instantly, however with the mailbox disconnected (offline). Now we must use New-MoveRequest cmdlet to queue up a request which will be completed in background, which means the user will still be able to use it during the operation.

Exchange 2007 syntax:

 Move-Mailbox -Identity USERNAME -TargetDatabase DATABASE -BadItemLimit INT

Exchange 2010 syntax:

 New-MoveRequest -Identity USERNAME -TargetDatabase DATABASE -BadItemLimit INT

You can get updates about the move request by using Get-MoveRequest cmdlet:


 Get-MoveRequest -Identity USERNAME

More info:
Move-Mailbox cmdlet
New-MoveRequest cmdlet
Get-MoveRequest cmdlet
Ler o texto inteiro ►
Related Posts Plugin for WordPress, Blogger...