Archive
Applying Small Updates by Reinstalling the Product
To propagate the small update to current users (this is a complete reinstall) from the command line
- From the command line use either: msiexec /fvomus [path to updated .msi file] or msiexec /I [path to updated .msi file] REINSTALL=ALL REINSTALLMODE=vomus.
- The updated .msi file is cached on the user’s computer. Note that it is not possible for the user to reinstall the product using Add/Remove Programs because the updated .msi file is not yet on the user’s computer.
To propagate a small update to current users (this is a complete reinstall) from a program
- From a program, call MsiReinstallProduct and specify REINSTALLMODE_PACKAGE, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA, and REINSTALLMODE_SHORTCUT
- The updated .msi file is cached on the user’s computer.
The following method launches a reinstallation of only those features or components that are affected by the small update.
To propagate a small update to current users (this is a partial reinstall)
- Obtain a list of the names of features and components that are affected by the small update.
- From the command prompt use: msiexec /I [path to updated .msi file] REINSTALL=[Feature list] REINSTALLMODE=vomus.
- The updated .msi file is cached on the user’s computer.
Source: https://msdn.microsoft.com/en-us/library/aa367575(v=vs.85).aspx
Error code 2771, 1635 , 1603 installing Exchange 2010 Rollup
Issue: “Error code is 2771,1635,1603″ popping up when installing SP3 Rollup 17 on Exchange 2010.
Cause: Generally this issue is caused by the Rollup installation searching and failing to find the previous rollups or missing components.
Troubleshooting:
- Clear the data in the “%SystemDrive%\Windows\TEMP”folder.
- Try to re-install the update rollup or (repair) service pack (if bold, reinstall or engage vendor)
- If the installation fails, open the Exchangesetup.msilog installation log in the “%SystemDrive%\ExchangeSetupLogs” folder.
- Exchange2010-KB4011326-x64-en.msp /lxv c:\installationlogfile.log
- If msp file in the “C:\windows\installer” folder is found missing during the installation process. Relate the [filename].msp file to Exchange*.MSP. Download, rename file to [filename].msp and re-install.
- If no other .msp files are missing, the installation process succeeds. However, if the installation process fails, you must repeat step 4 for each missing .msp file.
The following logs are examples from recent installation error:
• 150d4b.msi was not found in an earlier log:
MSI (c) (00:7C) [22:59:33:483]: Warning: Local cached package ‘C:\Windows\Installer\150d4b.msi’ is missing.
• Copy MSI from working server, run repair cache using attached OPUtil.vbs (This utility will scan to make sure everything is in place to perfrom patching): oputil.vbs /RepairCache /srestorelocation=c:\installer (location of msi)
• Run in detect mode to see what files are missing: identify OPUtil.vbs /detectonly
Resolved result:
MSI (c) (34:84) [04:11:07:461]: Original package ==> C:\Windows\Installer\150d4b.msi
MSI (c) (34:84) [04:11:07:461]: Package we’re running from ==> C:\Windows\Installer\150d4b.msi
MSI (c) (34:84) [04:11:07:461]: APPCOMPAT: Uninstall Flags override found.
MSI (c) (34:84) [04:11:07:461]: APPCOMPAT: Uninstall VersionNT override found.
MSI (c) (34:84) [04:11:07:461]: APPCOMPAT: Uninstall ServicePackLevel override found.
MSI (c) (34:84) [04:11:07:461]: APPCOMPAT: looking for appcompat database entry with ProductCode ‘{4934D1EA-BE46-48B1-8847-F1AF20E892C1}’.
MSI (c) (34:84) [04:11:07:461]: APPCOMPAT: no matching ProductCode found in database.
Comparing to a working server:
Exchange also stores information in the system registry about roll-up update that are installed on a server. These data are held in a series of entries (one for each update)
•HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData
• Debug: Error 2771: Upgrade of feature Admin Tools has a missing component.
• Identify component ID ‘{74FDDF3B-BFD6-4444-999F-D47E6CF0A18A}’ by searching registry keys and compare to working server or ‘google’ them. I was not able to detect it.
•Admin Tools is a component of the Microsoft Exchange Server 2010 management tools, you can configure and manage your Exchange organization remotely.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
MSI (c) (34:84) [04:11:16:993]: Note: 1: 2205 2: 3: Condition MSI (c) (34:84) [04:11:16:993]: Machine policy value 'EnforceUpgradeComponentRules' is 0 MSI (c) (34:84) [04:11:16:993]: SELMGR: ComponentId '{74FDDF3B-BFD6-4444-999F-D47E6CF0A18A}' is registered to feature 'AdminTools', but is not present in the Component table. Removal of components from a feature is not supported! MSI (c) (34:84) [04:11:16:993]: Note: 1: 2771 2: AdminTools MSI (c) (34:84) [04:11:16:993]: Note: 1: 2262 2: Error 3: -2147287038 MSI (c) (34:84) [04:11:16:993]: Transforming table Error. MSI (c) (34:84) [04:11:16:993]: Transforming table Error. MSI (c) (34:84) [04:11:16:993]: Note: 1: 2262 2: Error 3: -2147287038 DEBUG: Error 2771: Upgrade of feature AdminTools has a missing component. MSI (c) (34:84) [04:11:23:966]: Product: Microsoft Exchange Server - Update 'Update Rollup 17 for Exchange Server 2010 Service Pack 3 (KB4011326) 14.3.352.0' could not be installed. Error code 1603. Additional information is available in the log file C:\Temp\InstallationLogFile.log. MSI (c) (34:84) [04:11:23:966]: Windows Installer installed an update. Product Name: Microsoft Exchange Server. Product Version: 14.3.123.4. Product Language: 1033. Manufacturer: Microsoft Corporation. Update Name: Update Rollup 17 for Exchange Server 2010 Service Pack 3 (KB4011326) 14.3.352.0. Installation success or error status: 1603. MSI (c) (34:84) [04:11:23:966]: Windows Installer reconfigured the product. Product Name: Microsoft Exchange Server. Product Version: 14.3.123.4. Product Language: 1033. Manufacturer: Microsoft Corporation. Reconfiguration success or error status: 1603. MSI (c) (34:84) [04:11:23:966]: Grabbed execution mutex. MSI (c) (34:84) [04:11:23:966]: Cleaning up uninstalled install packages, if any exist MSI (c) (34:84) [04:11:23:966]: MainEngineThread is returning 1603 |
•After running through the troubleshooting steps described above, a repair of the Exchange 2010 SP3 MSI resolved the issue.
Additional Patching Steps.
Instructions for patching
- Log into exchange server
- Log off any additional users
- Launch IE, navigate to tools > internet options > advanced tab : security section and disable (uncheck):
- Check for publisher’s certificate revocation
- Check for server certificate revocation
- Launch an elevated CMD prompt
- Run “msiexec /update c:\<location of .msp> /lvx* c:\temp\ru23setup.log”
- Once completed revert step 3 and reboot the system.
For Exchange Server 2010 with SnapDrive Netapp installed.
Supplementary steps (log should show powershell commands failing to complete)
- For exchange servers* with snap manager installed: Navigate and create a backup of : C:\Program Files (x86)\Common Files\NetApp\powershell.exe.activation_config by creating a new folder in Netapp folder
- Move powershell.exe.activation_config out of the folder and into the newly created folder
- Launch services.msc and restart snapmanager (so activation configuration is bypassed)
- Proceed to install Roll-up via msiexec with elevated CMD prompt as documented
- Once the roll-up completes, move powershell.exe.activation_config back to C:\Program Files (x86)\Common Files\NetApp\
- Delete the newly created folder and restart the server as normal (Server will reload snapmanager service with original powershell.exe.activation_config file once windows starts back up).
Additional Notes:
Exchange upgrade fails due to missing language files:
Search-Mailbox
Search-Mailbox (Exchange 2010)
Use the Search-Mailbox cmdlet to search a mailbox and copy the results to a specified target mailbox, delete messages from the source mailbox, or both.
Note: You may have to set:
-TargetMailbox “DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}”
Organiazation Wide Search
1 |
Get-mailbox -resultsize ‘unlimited’| Search-Mailbox -Identity “<user>” –SearchQuery “<AQS conditions>” –TargetMailbox “Discovery Search Mailbox” –TargetFolder “SearchandDeleteLog” |
Searching and Pull Content:
1 |
Search-Mailbox -Identity “<user>” –SearchQuery “<AQS conditions>” –TargetMailbox “Discovery Search Mailbox” –TargetFolder “SearchandDeleteLog” |
Searching and Pull Content, Example 1 (Simple Search):
1 |
Search-Mailbox -Identity “USER” –SearchQuery “from:sender@company.com” –TargetMailbox “Discovery Search Mailbox” –TargetFolder “SearchandDeleteLog” |
• searches USER mailbox, as indicated in the -Identity parameter
• uses the AQS query that says, “find anything between January 1 and January 31 AND includes the word hookup in the message body”
• creates a full log of operations but doesn’t do anything except log what you do
• puts the results in the Search Results folder of the AdminMailbox mailbox
Searching and Pull Content, Example 2 (Search and pull e-mails between 6/1/2017 to 6/4/2017):
1 |
Search-Mailbox “<user>” –SearchQuery “Received:6/1/2017..06/4/2017” –TargetMailbox "Discovery Search Mailbox" -TargetFolder "SearchAndDeleteLog" |
Searching and Pull Content, Example 3 (Search and pull e-mails with size falling between 1000 and 900000 bytes):
1 |
Search-Mailbox “<user>” -SearchQuery “size:1000..900000” –TargetMailbox "Discovery Search Mailbox" -TargetFolder "SearchAndDeleteLog" |
Searching and Pull Content, Other Examples:
1 2 3 4 5 |
-SearchQuery "kind:meetings" -SearchQuery "to:Test_DistributionGroup" -SearchQuery 'attachment:"FLIGHT_TICKET_A83722571.htm"' -SearchQuery {Subject:"Wire Payment Request" AND From:adamante@hotmail.com AND Sent:"04/19/2017"} -SearchQuery {From:sarah@aol.com AND To:dgonzalez@yahoo.com} |
Search and Log Content:
1 |
Search-Mailbox -Identity "<user>" -SearchQuery "<AQS conditions>" -TargetMailbox "Discovery Search Mailbox" -TargetFolder "SearchAndDeleteLog" -LogOnly -LogLevel Full |
Search, Delete, and Log Content:
1 |
Search-Mailbox -Identity "<user>" -SearchQuery "<AQS conditions>" -TargetMailbox "Discovery Search Mailbox" -TargetFolder "SearchAndDeleteLog" -LogLevel Full -DeleteContent |
Deleting Content:
1 |
Search-Mailbox -Identity "<user>" -SearchQuery ‘<AQS conditions>’ -DeleteContent –force |
Deleting Content, Example 1
1 |
Search-Mailbox -Identity "USER" -SearchQuery 'subject:"Example Subject" AND Received:< 01/01/2010 AND from:sender@domain.com' -DeleteContent –force |
• Searches User mailbox, as indicated in the -Identity parameter
• Users AQS query to find sender, as indicated by from: ‘sender@domain’ and subject ‘Example Subject’ and before January 1,2010
• – DeleteContent (Switch to delete messages from a mailbox)
• -force (Switch overrides the confirmation prompt displayed when your use the DeleteContent switch to permanently delete messages)
Deleting Content, Example 2 (Search Dumpster)
1 |
Search-Mailbox -Identity "USER" -SearchQuery 'subject:"Example Subject" AND Received:< 01/01/2010 AND from:sender@domain.com' -DeleteContent –force –searchdumpster |
• -SearchDumpster (parameter specifies whether to search the Recoverable Items folder, which is the storage location in which items deleted from the Deleted Items folder or hard-deleted items are stored until they’re purged from the mailbox database. By default, the Recoverable Items folder is always searched. To exclude the folder from the search, set the SearchDumpster switch to $false, for example,-SearchDumpster:$false
Advanced Query Syntax (AQS) Values
Attribute |
Value type |
Description |
Example |
subject |
String |
Exact phrases or keywords in subjects of items. |
subject:”invoice for” |
body |
String |
Any item property that contains the specified string value. |
body:microsoft |
attachment |
String |
Exact phrases or keywords in attachment filenames. |
attachment:specialoffer.zip |
to |
String |
SMTP address, display name, or alias of user in TO field. |
to:”George Kaplan” |
from |
String |
As above for the FROM field. |
from:i.johnson@alphaville.fr |
cc |
String |
As above for the CC field. |
cc:kowalski +codetwo.com |
bcc |
String |
As above for the BCC field. |
bcc:harry lime |
participants |
String |
As above for all people fields. |
participants:administrator |
category |
String |
Names or parts of names of default Outlook categories. |
category:category -green |
importance |
String |
Available values: normal, high, low. Default is “normal”. |
importance: high OR low |
kind |
Item type |
Available values: |
kind:email OR contacts |
sent |
Date |
Specific date or time range in which the item was sent. Format: MM/dd/yyyy or date interval (today, yesterday, this week, this month, last month, this year, last year) |
sent:9/1/2014..9/1/2016 sent:”last month” |
received |
Date |
As above for when the item was received. |
received>=1/1/2015 |
hasattachment |
Boolean |
True if item has at least 1 attachment. (only Exchange 2016 and Online) |
hassattachment:true |
isflagged |
Boolean |
True if item is flagged. (only Exchange 2016 and Online) |
isflagged:true |
isread |
Boolean |
True if item is read. (only Exchange 2016 and Online) |
isread:false |
size |
Number |
Size of item (including attachments) in bytes. |
size>1000000 |
Example 1:
1 |
Search-Mailbox -Identity "USER” -SearchQuery '(subject:"copy for" -sample) AND (from:user2 OR accounting)' |
• Searches User mailbox, as indicated in the -Identity parameter
• Uses AQS and KDS query to find items sent by people with “user2” or “accounting” in names or addresses
• AND the phrase “copy for” in the Subject field excluding those with the string “sample” in the Subject.
Using Operations on multiple attributes and values
- Search-Mailbox uses slightly simplified version of Microsoft’s Keyword Query Language (KQL).
- All attributes and their values listed in the table below can be combined using logical operators AND, OR and NOT(case sensitive).
- Note: +/ – can also be used as substitutes for AND/NOT.
Operator |
Attribute value … |
: |
… contains specified value (accepts numerical and text values). |
= |
… is equal to specified value (accepts numerical and text values). |
> |
… is larger than specified value. |
< |
… is smaller than specified value. |
>= |
… is larger than or equal to specified value. |
<= |
… is smaller than or equal to specified value. |
<> |
… is not equal to specified value. |
.. |
… falls in the range of specified values (does not accept date intervals). |