[This is preliminary documentation and is subject to change. Blank topics are included as placeholders.]

Modifies an existing collection of instant messaging (IM) archiving settings. For example, you can enable or disable the automatic saving of IM sessions. You can also configure your system to block IM should your Archiving Server be unavailable. This is especially useful for organizations that are required by law to keep a record of all electronic communications.


Set-CsArchivingConfiguration [-Identity <XdsIdentity>] [-ArchiveDuplicateMessages <$true | $false>] [-BlockOnArchiveFailure <$true | $false>] [-CachePurgingInterval <UInt32>] [-Confirm [<SwitchParameter>]] [-EnableArchiving <None | ImOnly | ImAndWebConf>] [-EnablePurging <$true | $false>] [-Force <SwitchParameter>] [-KeepArchivingDataForDays <UInt32>] [-PurgeExportedArchivesOnly <$true | $false>] [-PurgeHourOfDay <UInt32>] [-WhatIf [<SwitchParameter>]]
Set-CsArchivingConfiguration [-ArchiveDuplicateMessages <$true | $false>] [-BlockOnArchiveFailure <$true | $false>] [-CachePurgingInterval <UInt32>] [-Confirm [<SwitchParameter>]] [-EnableArchiving <None | ImOnly | ImAndWebConf>] [-EnablePurging <$true | $false>] [-Force <SwitchParameter>] [-Instance <PSObject>] [-KeepArchivingDataForDays <UInt32>] [-PurgeExportedArchivesOnly <$true | $false>] [-PurgeHourOfDay <UInt32>] [-WhatIf [<SwitchParameter>]]


Parameter Required Type Description




Represents the unique identifier of the collection of archiving configuration settings to be modified. To modify the global settings, either leave out this parameter or use the following syntax: -Identity global. To modify settings at the site scope, use the prefix "site:" followed by the site name. For example: -Identity "site:Redmond".



ArchivingSettings object

Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values.




If True, then the IM service will be suspended any time instant messages cannot be archived. If set to False (the default value), IM will continue even if instant messages cannot be archived.




Indicates which items (if any) are saved to the archiving database. Valid values are:

None. No items are archived to the database. This is the default value.

ImOnly. IM sessions are archived to the database.

ImAndWebConf. Both IM and Web conferencing sessions are archived to the database.




If True, then archived instant messages will periodically be removed from the database, provided that these instant messages: 1) are older than the value specified in the KeepArchivingDataForDays property; or, 2) have been exported and marked for deletion.

If False, instant messages will not automatically be deleted from the database.




Number of days (between 1 and 2562) that archived instant messages are kept in the database before being automatically deleted. The default value is 14.

This property takes effect only if EnablePurging has been set to True.




Indicates the time of day when expired records are deleted from the archiving database. The time of day is specified using a 24-hour clock, with 0 representing midnight (12:00 AM) and 23 representing 11:00 PM. Note that you can only specify the hour of the day. This means that you can schedule purging to take place at 4:00 AM but you cannot schedule it to take place at, for instance, 4:30 AM or 4:15 AM. The default value is 2 (2:00 AM).

Database purging takes place only if the EnablePurging property is set to True.




If True, then the system will only purge instant messages that have been exported (and, as a result, have been marked for deletion). Instant messages that have not been exported will remain in the database, even if those instant messages are older than the value specified by the KeepArchivingDataForDays property.




Indicates how often (in hours) the system is purged of transcripts where none of the participants have been enabled for archiving. By design, all IM sessions are recorded; at the specified interval, the system will determine whether or not any of the participants in these sessions have been enabled for archiving. If the system finds a session where none of the participants have been enabled for archiving, then that transcript will be deleted from the database.

The CachePurgeInterval property can be set to any integer value between 4 and 168, inclusive. The default value is 24.




Specifies how "cross-pool" instant messages should be archived. Consider a simple example: Ken Myer (with an account in Pool 1) sends an instant message to Pilar Ackerman (who has an account in Pool 2); Pilar, in turn, sends a reply to Ken’s instant message. If ArchiveDuplicateMessages is set to False, then (based on a built-in algorithm) the session transcript will be logged in either Pool 1 or Pool 2, but not both. If ArchiveDuplicateMessages is set to True, the transcript will be logged in both pools.




Suppresses the display of any non-fatal error message that might arise when running the command.




Describes what would happen if you executed the command without actually executing the command.




Prompts you for confirmation before executing the command.

Detailed Description

Many organizations find it useful to keep a transcript of all the IM sessions and Web conferences their users participate in. For other organizations, it’s mandatory to keep such transcripts; for example, many organizations in the financial world are required by law to keep copies of all their electronic communications.

In order to archive instant messages, you must set up at least one Archiving Server. After the Archiving Server is set up, you must perform two additional steps. First, you need to enable IM at the global scope (for details, see the Set-CsArchivingConfiguration topic). Optionally, you can also configure custom archiving settings for different sites. If you do this, keep in mind that site settings always take precedence over global settings. For example, suppose your global archiving configuration enables archiving, but the site configuration settings for Redmond disable archiving. In that case, users in the Redmond site will not have their IM session transcripts archived because the site settings (disable archiving) override the global settings (enable archiving).

Second, you must use archiving policies to indicate which users will have their IM sessions archived. What happens if you enable archiving, but do not assign any users a policy that specifies that their IM sessions should be archived? Literally, nothing happens: IM sessions will not be archived unless a policy is in force that requires IM sessions to be archived. For more information, type "Get-Help Set-CsArchivingPolicy -full" (without the quote marks) from the Microsoft Windows PowerShell command line interface.

When you install Communications Server 2010, a collection of global archiving settings will be created for you; by default, these settings will apply to your entire organization. Alternatively, you can use the New-CsArchivingConfiguration cmdlet to create custom configuration settings on a site-by-site basis. Either way, you can use the Set-CsArchivingConfiguration cmdlet to modify the property values of an existing collection or archiving configuration settings.

Input Types

Return Types

Set-CsArchivingConfiguration does not return a value or object. Instead, the cmdlet configures instances of the Microsoft.Rtc.Management.WriteableConfig.Settings.Archiving.ArchivingSettings object.


-------------------------- Example 1 --------------------------

Copy Code
Set-CsArchivingConfiguration -Identity site:Redmond -ArchiveDuplicateMessages $False -KeepArchivingDataForDays 30

In the preceding example, Set-CsArchivingConfiguration is used to modify two properties of the archiving configuration settings that have the Identity site:Redmond. The command uses the parameter ArchiveDuplicateMessages to set the property ArchiveDuplicateMessages to False; this prevents the server from archiving the same instant message session multiple times. The command also uses the KeepArchivingDataForDays parameter to configure the server to keep instant messages for 30 days.

-------------------------- Example 2 --------------------------

Copy Code
Get-CsArchivingConfiguration -Filter "site:*" | Set-CsArchivingConfiguration -ArchiveDuplicateMessages $False -KeepArchivingDataForDays 30

Example 2 is a variation of the first example: in this case, however, the values of the ArchiveDuplicateMessages and KeepArchivingDataForDays properties are modified for all the archiving settings that have been configured at the site scope. To carry out this task, the command first uses Get-CsArchivingConfiguration and the Filter parameter to return a collection of all the archiving settings configured at the site scope. The filter value "site:*" ensures that only settings that have an Identity that begins with the characters "site:" are returned. The filtered collection is then piped to Set-CsArchivingConfiguration, which modifies property values for each item in the collection.

-------------------------- Example 3 --------------------------

Copy Code
Get-CsArchivingConfiguration | Where-Object {$_.EnableArchiving -eq "ImAndWebConf"} | Set-CsArchivingConfiguration -EnableArchiving "ImOnly"}

In Example 3, all of the archiving configuration settings that allow both IM session and Web conferencing archiving are modified; after the command completes, those settings will allow only for IM session archiving. To do this, the command first calls Get-CsArchivingConfiguration without any parameters in order to return a collection of all the archiving configuration settings currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out only those settings where the EnableArchiving property is equal to (-eq) "ImAndWebConf". This filtered collection is then piped to Set-CsArchivingConfiguration, which takes each item in the collection and changes the value of EnableArchiving to "ImOnly".