Exchange Server 2013 Preview Scripts

Just like Exchange Server 2010, Exchange Server 2013 has a set of pre-written scripts to help administrators manage their Exchange environment.  These scripts range from the automatic rebalancing of databases in a DAG cluster to installing AntiSpam agents on the CAS or Mailbox roles.   These scripts are stored in the Scripts directory of the Exchange installation directory:

The list below is a complete list of scripts for Exchange Server 2013 Preview:

Script Name Script Purpose
AddUsersToPFRecursive.ps1 Add permissions for Client Users to Access Public Folder Content
AntispamCommon.ps1 “This script is referenced by other anti-spam scripts in Exchange
2007 and is not intended to be used directly.”
CheckDatabaseRedundancy.ps1 “Checks the redundancy of databases by validating that they have at
least Nconfigured and “healthy” copies. Active and passive copies
are both counted.”
CheckInvalidRecipients.ps1 “This script is designed to return information on invalid recipient
objectsand possible attemtpt to fix them”
CITSConstants.ps1 “This file contains global constants used by CI Troubleshooter library”
CITSLibrary.ps1 “This file contains Content Index Troubleshooter functions”
CITSTypes.ps1 “This file contains additional types used by CI troubleshooter library”
CollectOverMetrics.ps1 “Reads DAG member event logs to gather information about database
operations(such as database mounts, moves, and failovers) over
a specific time period.”
CollectReplicationMetrics.ps1 “This script provides an active form of monitoring because it
collects metrics in real time, while the script is running.”
Configure-EnterprisePartnerApplication.ps1 “Configures a Partner Application that uses the OAuth protocol
to authenticateto Exchange.”
configure-SMBIPsec.ps1 “This script is to be used to help add the necessary
Ipsecconfiguration to protect SMB (File Share) communication.”
ConfigureAdam.ps1 “Used to modify the default configuration of the Active Directory
ApplicationMode (ADAM) directory service on the Edge Transport
ConfigureCafeResponseHeaders.ps1 Possibly modifies the OWA reponse header. CAFE is an abbreviation
for Client Access Front End.
ConfigureNetworkProtocolParameters.ps1 “Configures a Global Catalog running on the machine on which the
script is run to listen on the standard NSPI Rpc-over-Http port 6004.
This would enable Rpc-over-Http connections from Outlook clients to
a GC,
RpcProxy’ed by CAS boxes.”
ConvertTo-MessageLatency.ps1 “This script provides administrators with a simple way to extract
serverand end-to-end latency information from the message tracking
DagCommonLibrary.ps1 “A collection of DAG-related functions for use by other scripts.”
DatabaseMaintSchedule.ps1 “Random generate maintenance and quota notification schedule time
based on the specified criteria.”
DiagnosticScriptCommonLibrary.ps1 “This script is a library of functions for common diagnostic script
executions. Diagnostic scripts to dot source file to invoke the
Disable-AntimalwareScanning.ps1 Disables antimalware scanning.
Disable-InMemoryTracing.ps1 Undo the changes made by the Enable-InMemoryTracing.ps1 script.
Enable-AntimalwareScanning.ps1 Enables antimalware scanning.
enable-CrossForestConnector.ps1 Adjusts the permissions on a Send Connector to enable Cross Forest
trust for anonymous user.
Enable-InMemoryTracing.ps1 Enables In Memory Tracing.
enable-OutlookCertificateAuthentication.ps1 Configure virtual directories to allow Outlook for smart card
ExchUCUtil.ps1 “Configure Exchange Unified Messaging for use with Office
Communications Server”
Export-MailPublicFoldersForMigration.ps1 Exports the properties (Alias, EmailAddress, HiddenFrom Address-
listsenabled, windowsemailaddresses,entryid) of all mail enabled
public folders to a CSV file.
Export-OutlookClassification.ps1 “Generate the Classifications.xml file for the Outlook 2007 computer.”-
Export-PublicFolderStatistics.ps1 “Generates a CSV file that contains the list of public folders and
their individual   sizes”
Export-RetentionTags.ps1 Exports the retention tags from Exchange and can be used in conjunction
with import-retentiontags.ps1
get-AntispamFilteringReport.ps1 Report the number of messages that are blocked or put in the quarantine.
get-AntispamSCLHistogram.ps1 Creates a report the number of messages for each SCL rating.
get-AntispamTopBlockedSenderDomains.ps1 List top ten domains that sent spam.
get-AntispamTopBlockedSenderIPs.ps1 List top ten IP addresses that sent spam.
get-AntispamTopBlockedSenders.ps1 List top ten email addresses that sent spam.
get-AntispamTopRBLProviders.ps1 Reports which RBL providers are performing the best.
get-AntispamTopRecipients.ps1 Lists the top ten recipients of spam.
Get-UCPool.ps1 Reports on the UC Pools createed by OCS/Lync.
GetDatabaseForSearchIndex.ps1 “This script returns the associated mailbox database names.”
GetSearchIndexForDatabase.ps1 “This script returns index directories for the specified mailbox database
GetValidEngines.ps1 Possibly returns a list of engines being used by the ForeFront filtering agent.
Import-MailPublicFoldersForMigration.ps1 “Imports the properties   (Name,EmailAddresses,HiddenFromAddressListsEnabled,WindowsEmail-
Addresses,EntryId)# of mail enabled public folders from a CSV
file and calls the cmdLet Enable-MailPublicFolder on each one of them”
Import-RetentionTags.ps1 Used in conjunction with the export-retentiontags.ps1 script.
install-AntispamAgents.ps1 Installs the Connection Filtering agent, Content Filter agent, Sender ID agent, Sender
Filter agent, Recipient Filter agent, and Protocol Analysis agent on the
Exchange server – performed on the mailbox server.
install-BackEndAntispamAgents.ps1 Installs only the Content Filter agent and the Protocol Analysis agent on
the Exchange server – performed on the mailbox server.
install-FrontEndAntispamAgents.ps1 Installs the AntiSpam agents on the Exchange server – performed on the CAS server.
MailboxDatabaseReseedUsingSpares.ps1 “This script is used to validate the safety of the environment, before proceeding to swap failed database copy # to a spare disk and reseed.”
ManageScheduledTask.ps1 This script will allow you to add, modify or remove scheduled tasks in PowerShell.
Merge-PublicFolderMailbox.ps1 “Merges the contents of the given public folder mailbox with the targetpublic folder mailbox.”
MigrateUMCustomPrompts.ps1 “This script migrates a copy of all Exchange 2007 Unified Messaging custom   prompts# to Exchange 2010. This includes prompts in all Exchange 2007 UM Dial Plans and UM Automated Attendants.”
Move-PublicFolderBranch.ps1 “Moves the contents of folders that reside along with the given folder branchto the target public folder milbox”
Move-TransportDatabase.ps1 This script will move the transport databases (mail.que) and its related logfiles to a new location+B22
MoveMailbox.ps1 Provides a method to move a mailbox synchronously to another mailbox database.
new-TestCasConnectivityUser.ps1 “This script creates a user that can be used for testing connectivityfor Client Access Servers. This script has to be run by an admin who as permissions to create users in the Active Directory. “
Prepare-MoveRequest.ps1 This script is to be used for cross forest mailbox moves and creates a newuser with a copy of the source AD attributes.
PublicFolderToMailboxMapGenerator.ps1 “Generates a CSV file that contains the mapping of public folder branch to mailbox.”
RedistributeActiveDatabases.ps1 “Attempts to redistribute active databases in the specified DAG.#  If required, it will also try to balance active DBs across sites.”
ReinstallDefaultTransportAgents.ps1 “Installs and enables default transport agents on Edge and Hub roles.”
RemoveUserFromPFRecursive.ps1 Removes permissions for Client Users to Access Public Folder Content
ReplaceUserPermissionOnPFRecursive.ps1 This script replace permissions of a user in the permission list for a publicfolder and the folders beneath it in the hierarchy with new permissions. If o permissions for the user can be found, nothing will be changed on that particular folder.
ReplaceUserWithUserOnPFRecursive.ps1 This script replaces a user with another user in the permissions list for apublic folder or the folders beneath it in the hierarchy. If no permission entries can be found, nothing will   be changed. Note that existing permissions will not be removed.
Reset-AntispamUpdates.ps1 “Resets baseline antispam data to original out-of-box state.”
ResetAttachmentFilterEntry.ps1 “This script is used to reset the list of attachment-types that are blocked by the attachment-filtering feature in the Exchange Gateway role, to the factory set defaults.”
ResetCasService.ps1 “This script will reset and recreate the virtual directory for the service that you define.”
ResetSearchIndex.ps1 “This script will remove the Search Index Catalog associated with thespecified Mailbox Database. “
ResumeMailboxDatabaseCopy.ps1 “This script will resume activation and log file replication (copy and replay)for the specified mailbox database.”
RollAlternateServiceAccountPassword.ps1 “Cmdlet takes IDs of multiple arrays, but operates with every one of themin isolation. All password changes to Active Directory are done after processing all arrays. The script will ask with “medium impact” before propagating a password change to the Active   Directory, especially if there were any failures setting passwords on individual CAS   boxes.”
SearchDiagnosticInfo.ps1 “Prints the result of Get-SearchDiagnosticInfo”
Split-PublicFolderMailbox.ps1 “Splits the given public folder mailbox based on the size of the folders”
StartDagServerMaintenance.ps1 “Calls Suspend-MailboxDatabaseCopy on the database copies.Pauses the node in Failover Clustering so that it can not become the Primary Active Manager. Suspends database activation on each mailbox database. Sets the DatabaseCopyAutoActivationPolicy to Blocked on the server. Moves databases and cluster group off of the designated server.* If there’s a failure in any of the above, the operations are undone, with the exception of successful database moves* Can be run remotely, but it requires the cluster administrative tools to be installed (RSAT-Clustering).”
StopDagServerMaintenance.ps1 “Resumes the things that were suspended by StartDagServerMaintenance,but does  NOT move resources back to the server.  Can be run remotely, but it requires   the cluster administrative tools to be installed (RSAT-Clustering).”
StoreTSConstants.ps1 “This file contains global constants used by the Store Database Troubleshooters”
StoreTSLibrary.ps1 “A collection of Store Troubleshooter functions for use by other scripts.”
Troubleshoot-CI.ps1 “Performs troubleshooting on Content Index (CI) catalogs.”
Troubleshoot-DatabaseLatency.ps1 “Script is used by Microsoft System Center Operations Manager 2007 to detectand correct high latencies on a database. You can create a scheduled task by using Task Scheduler to run this script. Database latencies can be caused by a number of issues.”
Troubleshoot-DatabaseSpace.ps1 “Used by Microsoft System Center Operations Manager 2007 to detect andcorrect any excess log growth or Microsoft Exchange database (.edb) file growth that, if unchecked, may cause   database downtime. By default, System Center Operations Manager 2007 runs the script every 15 minutes”
uninstall-AntispamAgents.ps1 Removes the AntiSpam agents installed by Install-AntispamAgents.ps1.
uninstall-BackEndAntispamAgents.ps1 Removes the AntiSpam agents installed by Install-BackEndAntispamAgents.ps1.
uninstall-FrontEndAntispamAgents.ps1 Removes the AntiSpam  agents installed by Install-FrontEndAntispamAgents.ps1.B24
Update-MalwareFilteringServer.ps1 “The Update-MalwareFilteringServer command launches the engine and signatureupdate process for malware filtering.”

6 thoughts on “Exchange Server 2013 Preview Scripts

  1. The Anti-Spam scripts such as get-AntispamTopRBLProviders.ps1 do not work on Exchange 2013, or at least on my Exchange 2013 servers they return no output!

    Has anyone else seen this?

    Clint Boessen
    Exchange MVP

  2. Seeing the same issue here. Can’t get any output no matter what combination of Get-AgentLog and script that is used.

  3. Troubleshoot-CI.ps1 doesn’t work either in Exchange 2013, it’s looking for old (Exchange 2010) path in registry…

    Exchange 2010

    Exchange 2013

  4. Tuomas,

    You know if Troubleshoot-CI.ps1 works, I taste it but it does not work, I’ve changed the path in the file CITSConstants.ps1, but it does not work too…

    You have something about it?


  5. Following 3 inbuilt scripts are missing from the above list:

    • Kaushal,

      Thanks for leaving the comment. However, the list of scripts is from Exchange Server 2013 PREVIEW. Which means that this was pre RTM which means not what is currently on a CU## server. The list of scripts was what I found on the preview install of Exchange Server.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s