Exchange 2013 Performance Health Checker Script

Awesome Script Smile
This script checks various configuration items on the server to make sure they match the recommendations published in the “Exchange 2013 Sizing and Configuration Recommendations” guidance on TechNet.  It also reports on OS, system, and hardware information.  It can be ran remotely, against a single server or a group of servers.  It takes some of the most common configuration causes of Exchange 2013 performance cases that we encounter in support and allows you to rule them out quickly without having to check each server or read through the entire TechNet guidance. 

This script needs to be executed from the Exchange 2013 Management Shell.

Here is a current list of items the script reports on:

Operation System version
Exchange Build
Physical/Virtual Machine
Server Manufacturer and Model (physical hardware only)
VM host processor/memory configuration recommendations
Exchange server roles
Pagefile Size
Power Settings
.NET Framework version
Network card name and speed
Network card driver date and version (Windows 2012 and Windows 2012 R2 only)
RSS enabled (Windows 2012 and Windows 2012 R2 only)
Physical Memory amount
Processor Model
Number of processors, cores, and core speed
Hyper-threading enabled/disabled
Processor speed being throttled
Current list of active/passive databases and mailboxes (optional)

HealthChecker

Download: https://gallery.technet.microsoft.com/Exchange-2013-Performance-23bcca58

Public Folder Migratie to Office365

Move Public Folder script from 2007/2010 to Office 365 Script created by Ward Vissers
www.wardvissers.nl

THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK
OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER

                                        
Please Select the Choice You Want

Prepare for Migration (Legacy Exchange Server
00) Add the Office 365 Domain Name
01) Take a snapshot of the original source folder structure
02) Take a snapshot of public folder statistics such as item count, size, and owner.
03) Take a snapshot of the permissions
04) Locate public folders that have a backslash in the name
05) Rename Public Folder
06) Checks the public folder migration status.
07) Set PublicFolderMigrationComplete to False

Check Office 365
08) Get-PublicFolderMigrationRequest
09) Get-Mailbox -PublicFolder
10) Get-PublicFolder

Generate CSV Files and create Public Folder Mailboxes (Legacy Exchange Server)
11) Export-PublicFolderStatistics PFSizeMap.csv
12) PublicFolderToMailboxMapGenerator PFMailboxMap.csv

Create the public folder mailboxes on Exchange Online
13) Master Public Folder Name
14) Create Public Folder Mailboxen (Check PFMailboxMap.csv)

Migrating the Public Folders
15) Export mail-enabled public folders from Active Directory
16) LegacyExchangeDN Administrator
17) LegacyExchangeDN Public Folder Server
18) External Name Outlook Anywhere
19) Set the XML file
20) Give the CSV file to start the Migration
21) Public Folder Migration Status

Lock down the public folders on the legacy Exchange server for final migration (downtime required)
22) Lock the legacy public folders for finalization

Finalize the public folder migration (downtime required)
23) Finalize the public folder migration (downtime required)

Test and unlock the public folder migration
24) Add Public Folder to Test User
25) Unlock the public folders for all other users
26) Public Folder Migration Complete (Legacy Exchange Server)
27) Public Folders Enabled Local

Final Check
28) Take a snapshot of the original source folder structure.
29) Take a snapshot of the public folder statistics such as item count, size, and owner
30) Take a snapshot of the permissions

99) Exit
Public Folder Migratie to Office365

Download: https://gallery.technet.microsoft.com/scriptcenter/Public-Folder-Migratie-to-25bd50a0

Virtualizing Internet Explorer 11 with ThinApp 5.1

With ThinApp 5.1 support for virtualizing Internet Explorer 11 was introduced.

1. Start your Windows 7 capture’n’build machine (Windows 7 SP1 with non Windows Updates)
2. Install Prerequisite updates for Internet Explorer 11
3. Download Download Internet Explorer 11 32-bit Installer English or Download Internet Explorer 11 64-bit Installer English
4. Start ThinApp Setup Capture
5. Do a prescan
6. Install Internet Explorer 11
7. Do a post scan
8. Build your project
9. Finish

Exchange 2013 Setup Error: A Receive connector must have a unique combination of a local IP address & port bindings and remote IP address ranges

You may get an error while Exchange setup checks Receive Connectors for local IP address/port bindings and remote IP address ranges for the server where you are installing Cumulative Update. This error would come up at “Mailbox Role: Transport Service” step of setup/update process. Here is the detailed error message.

Error:

Error:
The following error was generated when “$error.Clear();
$connectors = Get-ReceiveConnector -Server $RoleFqdnOrName;
foreach($connector in $connectors) { if($connector.MaxLocalHopCount -gt 1) { Set-ReceiveConnector -Identity $connector.Identity -MaxLocalHopCount 5 } };
” was run: “Microsoft.Exchange.Management.SystemConfigurationTasks.ConnectorMappingConflictException: The values that you specified for the Bindings and RemoteIPRanges parameters conflict with the settings on Receive connector “EX2013\Incoming from Internet – Dummy”. A Receive connector must have a unique combination of a local IP address & port bindings and remote IP address ranges. Change at least one of these values.
at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
at Microsoft.Exchange.Management.SystemConfigurationTasks.SetReceiveConnector.InternalValidate()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)”.
 
Error:
The following error was generated when “$error.Clear();
$connectors = Get-ReceiveConnector -Server $RoleFqdnOrName;
foreach($connector in $connectors) { if($connector.MaxLocalHopCount -gt 1) { Set-ReceiveConnector -Identity $connector.Identity -MaxLocalHopCount 5 } };
” was run: “Microsoft.Exchange.Management.SystemConfigurationTasks.ConnectorMappingConflictException: The values that you specified for the Bindings and RemoteIPRanges parameters conflict with the settings on Receive connector “EX2013\Default Frontend EX2013”. A Receive connector must have a unique combination of a local IP address & port bindings and remote IP address ranges. Change at least one of these values.
at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
at Microsoft.Exchange.Management.SystemConfigurationTasks.SetReceiveConnector.InternalValidate()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)”.

Explanation:

You can not have same values of Local IP Address:Port bindings and Remote IP Address Range both on two Receive Connectors so essentially you have to change anyone of these on one of the Receive Connector.

Now problem is you won’t be able to open Exchange Admin Center (EAC) or Exchange Management Shell (EMS) to modify Local IP Address:Port Bindings or Remote IP Address Ranges on one of these receive connectors.

Solution:

Exchange saves configuration information in Configuration Partition of Active Directory so you can use any AD Editor like ADSIEdit.msc or ADExplorer.exe to modify this value. (Be careful while using these raw AD Editors!)

  • Open ADSIEDIT.MSC.
  • Navigate to the following location: CN=SMTP Receive Connectors,CN=Protocols,CN=<ExServerName>,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=<ExOrg Name>,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=<DomainName>,CN=Com
  • Right-click one of the Receive Connector which is showing up in error and then click Properties. (It is recommend to modify the Receive Connector created manually and not the “Default FrontendServerName” connector.)

Now change the value of either msExchSmtpReceiveRemoteIPRanges or msExchSmtpReceiveBindings following below setps.

  • Locate the msExchSmtpReceiveRemoteIPRanges attribute. This attribute stores values for Remote Network Settings that you see in EAC.
  • Remove the values here and add some unique IP address or IP Range back.

SMTPbindings

Source