Virtualized Office 2010 and Extended MAPI

In the forums there are a couple of threads which state that using the Send file via default mail-client fails in certain instances (most commonly when using any Adobe software) when using a virtual Outlook with the Office Deployment-kit.
In short, they open their application (Adobe Reader) and choose  a menu which allows them to directly forward their document to a new e-mail (click the letter in Adobe Reader available from the toolbar). Most commonly this fails with an error stating that there is no default mail client (and sometimes afterwards a more obscure error)

The below article explains MAPI and is quite useful;
http://support.microsoft.com/kb/315458
Which under #3 states the following;

3.It then looks under the client’s key to find the path of the correct DLL to load. If the function is a Simple MAPI function, it loads the DLL specified by the DllPath value, and then calls the function. If the function is an Extended MAPI function, it loads the DLL specified by the DllPathEx value. After finding the appropriate DLL, it then calls the function.

 

In the case of Microsoft Outlook, for example, it looks for the value of DLLPath or DLLPathEx under the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Microsoft Outlook

Reviewing a procmon log to see what the application does – the following was found;
Within %TEMP% there are two log-files for the Mail proxy;
MapiProxyServer.log
MapiProxyClient.4916.log

Its nice to know there are log files for troubleshooting- they don’t tell us a whole lot about the behavior currently under investigation though and will only show if the proxy is initiated. Adobe Reader (in this case) fails before the proxy is actually used – so the two log-files were only located during a successful attempt to kick-start the proxy (right-click a file and choose send-to).

The following is being accessed by Adobe Reader while invoking the action to send an e-mail;

image

Considering the above statement this tells us;
1. Adobe Reader uses an Extended MAPI function
2. That’s not supported when using a virtual Outlook with the Office deployment kit since DLLPathEx isn’t created when using the kit

The Process Monitor capture above shows us that there are several registry keys and files that are traversed – to understand the flow the previously mentioned KB-article can be used to decipher why certain things are accessed in the very specfic.

First of all – if one of the below functions are used;
◦MAPIAddress
◦MAPIDeleteMail
◦MAPIDetails
◦MAPIFindNext
◦MAPIFreeBuffer
◦MAPILogoff
◦MAPILogon
◦MAPIReadMail
◦MAPIResolveName
◦MAPISaveMail
◦MAPISendDocuments
◦MAPISendMail

Its called Simple MAPI and the registry value DLLPath is used to locate the default main client. This seems to correspond to the most commonly used parts of the mail-client, however if any other function is used – DLLPathEx is lookedup to find the extended MAPI. Read more about MAPI from Microsoft in the article Differences between CDO, Simply MAPI and Extended Mapi.  If the lookup fails for the above registry value needed – a search for mapi32x.dll is started. Mapi32x.dll is a fallback and quite often not available at all on  a system. If you program starts searching for this – it means something has most likely failed.

Last stop is to present the user with a message that there is no mail-client – defined therefore it will check the PreFirstRun-key (perhaps you have a mail-client, buts its not setup?) or the NoMailClient for the corresponding message to present the users.

If reviewing a package containg a copy of Outlook – the keys looks like this;

image

Opening the file with PE Explorer or Resource Hacker reveals the below information regarding the OLMAPI32.dll file;

image

It seems that the file originated from MAPI32.dll – however offering an upgraded set of functionality.

Traversing the registry and comparing what Office 2010 layed down under the HKLM\Software\Clients key and what the Office 2010 Deployment Kit layed down showed some staggering limitations. A native install creates the following;

image

The Office 2010 App-V Deployment Kit creates the following;

image

We have 1 proxy with the deployment kit and 4 when using a native install. The MAPI, as we now know, is not complete either.

Threads;

http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/0df815ae-19d6-4a2a-b028-b636952c91c9

http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/8b028304-866d-4288-89df-01fd81e56b3e

http://social.technet.microsoft.com/Forums/en-US/appvgeneralsequencing/thread/149602b4-f894-4955-8b0e-fc7bff56e65e

http://social.technet.microsoft.com/Forums/en-US/appvclients/thread/a0f6e9ac-d3f7-4c86-831c-f93daee11511

System Event Notification Service, App-V and logon failure

Located a very nice KB-article and wanted to be able to locate it again – hopefully it becomes more searchable using key words involved! Thanks to Justin Zarb for the find – personally, this was missed in a spreadsheet of articles that should have been on top of my head.

You may experience the following issues after you log on to a computer that is running Windows 7 or Windows Server 2008 R2:

  • Your desktop does not load. You only see a blue or black background image.
  • Windows Explorer does not run, and you cannot access your data.
  • You receive the following message in a notification balloon:

Failed to connect to a windows service. Windows could not connect to the System Event Notification Service (SENS). This problem prevents limited users from logging on to the system. As an administrative user, you can review the System Event Log for details about why the service didn’t respond.

When the issue occurs, a service host that contains the following services crashes on system startup:

  • Certificate Propagation
  • Extensible Authentication Protocol
  • Group Policy Client
  • IKE and AuthIP IPsec Keying Modules
  • IP Helper
  • Server
  • Multimedia Class Scheduler
  • User Profile Service
  • Task Scheduler
  • System Event Notification Service
  • Shell Hardware Detection
  • Themes
  • Windows Management Instrumentation

You may experience this issue after you install certain applications, for example Microsoft Application Virtualization Client ( App-V ), on the computer.
Note You have to restart the computer one or more times to recover from this issue.

See this article; http://support.microsoft.com/kb/2590550

Windows 6.1 x64 hotfixes–to date…

As mentioned – Windows 7 and Windows 2008 R2 hotfixes that normally are necessary to be included in a deployment.

981070    “Windows can’t open Add Printer” error in a 64-bit version of Win7 or of Windows Server 2008 R2    http://support.microsoft.com/kb/981070
981619    A hotfix is available that improves the performance of CLR when a .NET Framework 3.5 SP1-based application runs in a virtualized environment    http://support.microsoft.com/kb/981619
2028551    An update is available that contains improvements to XPS in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2028551
2454826    A performance and functionality update is available for Windows 7 and for Windows Server 2008 R2    http://support.microsoft.com/kb/2454826/en-us
2465772    An application or service that uses Winsock API or Winsock Kernel API may randomly stop responding in Windows Server 2008 R2 or in Windows 7    http://support.microsoft.com/kb/2465772
2465990    “0x80041002 (WBEM_E_NOT_FOUND)” error occurs when you try to open a WMI namespace on a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2465990
2481614    Windows 7 may connect to a guest network instead of a corporate network    http://support.microsoft.com/kb/2481614
2490742    A “0x000000B8” Stop error occurs when you try to shut down or hibernate a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2490742
2505348    High CPU usage or a lengthy startup process occurs during WMI repository verification when a large WMI repository exists in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2505348
2510636    An update that improves the startup performance of Windows 7 and of Windows Server 2008 R2 is available    http://support.microsoft.com/kb/2510636
2511290    A computer that is running Windows 7, Windows Vista, Windows Server 2008 or Windows Server 2008 R2 continues to use the original printer driver after you update or replace the printer driver    http://support.microsoft.com/kb/2511290
2511305    Network throughput is not scaled up correctly if high-bandwidth PCI Express adapters and four or more processor sockets are used in Windows Server 2008 R2    http://support.microsoft.com/kb/2511305
2516405    “0x00000050” Stop error occurs when you run an application that uses the RegSetValueEx function on a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2516405
2519740    The WWAN service may crash after you resume a Windows 7-based computer from S3 sleep    http://support.microsoft.com/kb/2519740
2524478    The network location profile changes from “Domain” to “Public” in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2524478
2525246    “0x0000003B” Stop error when you remotely control a Remote Desktop session in Windows Server 2008 R2    http://support.microsoft.com/kb/2525246
2525332    You encounter a long logon time after you enable the “Do not automatically make redirected folders available offline” Group Policy setting in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2525332
2525949    Visual artifacts occur when more than 1,000 controls are drawn in the same container in Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2525949
2526028    Printing performance decreases in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2526028
2526870    Windows Vista, Windows Server 2008, Windows 7, or Windows Server 2008 R2 may stop responding at the Welcome screen after you enter the user credentials to log on to the computer    http://support.microsoft.com/kb/2526870
2526946    An SSO solution that calls the LsaLogonUser function to pass a KERB_TICKET_LOGON structure for Kerberos authentication does not work in Windows 7 SP1 or in Windows Server 2008 R2 SP1    http://support.microsoft.com/kb/2526946
2528507    Incorrect memory dump files in an x64-based version of Windows 7 SP1 or of Windows Server 2008 R2 SP1    http://support.microsoft.com/kb/2528507
2534356    Some CPU cores are parked while other active CPU cores have a heavy workload in Windows Server 2008 R2    http://support.microsoft.com/kb/2534356
2546651    Print driver installation does not work in Windows 7 or in Windows Server 2008 R2 when you try to install the HP Universal Print Driver in a Novell network environment    http://support.microsoft.com/kb/2546651
2547244    The WMI service and the WMI providers stop responding when you use WMI performance classes to monitor performance on a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2547244
2549657    The EnumPrinterDataEx function causes pool corruption in the printer spooler service in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2549657
2549661    Connectivity problems for an Outlook client to an Exchange Server in a server farm through an RPC-over-HTTP connection    http://support.microsoft.com/kb/2549661
2552343    Time-out error occurs when you install a Windows Update package that contains drivers on a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2552343
2492536    Msinfo32.exe takes a long time to display or export system information on a computer that has many MSI-X-supported devices and that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/default.aspx?scid=kb;en-US;2492536
2578214    An application crashes when it tries to retrieve file information from an invalid or corrupted file in Windows Vista, in Windows Server 2008, in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2578214/
2564236    I/O throughput is low when large files are read sequentially in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2564236/
2561708    Offline files synchronization may not finish on a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2561708/
2578159    The logon process stops responding in Windows Server 2008 R2 or in Windows 7    http://support.microsoft.com/kb/2578159/
2551503    A mapped drive that has the non-persistent flag set is displayed as a disconnected drive in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2551503/
2561285    You experience a long domain logon time in Windows 7 or in Windows Server 2008 R2 after you deploy Group Policy preferences to the computer    http://support.microsoft.com/kb/2561285/
2550581    When you try to access files on a network share, Windows Explorer stops responding on a computer that is running Windows 7    http://support.microsoft.com/kb/2550581/
2566191    Windows 7 or Windows Server 2008 R2 reports memory incorrectly on a computer that is running a chipset that has an integrated GPU    http://support.microsoft.com/kb/2566191/
2617858    Unexpectedly slow startup or logon process in Windows Server 2008 R2 or in Windows 7    http://support.microsoft.com/kb/2617858/
2617157    Windows 7 or Windows Server 2008 R2 crashes if a command prompt or a PowerShell console is opened and closed many times    http://support.microsoft.com/kb/2617157/
2600484    Certain user folders are absent from the user profile in Windows 7 or in Windows Server 2008 R2 if the folders are excluded from the roaming profile    http://support.microsoft.com/kb/2600484/
2585233    “Stop 0x000000AB (SESSION_HAS_VALID_POOL_ON_EXIT)” error when a client logs off from a Windows Server 2008 R2 Remote Desktop Services session    http://support.microsoft.com/kb/2585233
2583905    Slow performance when you copy more than 10 gigabytes of data to a Blu-ray disk in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2583905/
2582203    A process that is being terminated stops responding in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2582203
2590550    The desktop does not load and only displays a black or blue background after you log on to a computer that is running Windows 7 or Windows Server 2008 R2    http://support.microsoft.com/kb/2590550
2598526    Client computers do not obtain an IP address when they request a DHCP lease from a Windows Server 2008 R2-based DHCP server    http://support.microsoft.com/kb/2598526/
2614066    Black screen during a Remote Assistance session in Windows Vista, in Windows Server 2008, in Windows 7, or in Windows Server 2008 R2    http://support.microsoft.com/kb/2614066/
2612966    Paged pool memory leak when you access some shared files in Windows 7 or in Windows Server 2008 R2    http://support.microsoft.com/kb/2612966/
2620656    Invalid redirected printers may be available in a Remote Desktop Services session that connects to a RD Session Host server that is running Windows Server 2008 R2    http://support.microsoft.com/kb/2620656/
2530309    Internet Explorer Group Policy Preferences do not apply to Internet Explorer 9 in a Windows Server 2008 R2 domain environment    http://support.microsoft.com/kb/2530309/

Office 2007 without Outlook

Part 2;
Well, Finally – here comes the complete article of howto deploy office without having Outlook as the default mail client

Part 1;

If you have deployed Office, you probably deployed it either with Outlook or without.

However, if you deployed it with Outlook – you probably wanted Outlook as the default mail-client. This isn’t the case for everyone, and that gave me a headache a while back. Loads of registry hacks and work later (and more work later on) I solved the issue thanks to a techician writing a bat-file resetting the registry keys.

Now I saw this blog-post where the Office Resource team actually will publish an article on howto resolve this automagically.

I wish I had that one year ago.