Quantcast
Channel: EnterpriseVault – Microsoft Technologies Blog
Viewing all 16 articles
Browse latest View live

Enterprise Vault Sql query for checking messages that are due for expire but are not on hold

$
0
0

Hi Readers,

I am a bit busy now a days & working on some new projects so dednt got atime to blog much.

Currently i am engaged in EV & DA stuff  so below is the query that can be used for checking messages that are due for expire but are not on hold

SELECT COUNT( * )
FROM Saveset ss
WHERE archiveddate < DATEADD(DAY, -90, GETDATE())
AND ss.SavesetIdentity  NOT IN
(SELECT DISTINCT savesetidentity FROM holdsaveset)

Out put will be a number.

Run this on each database from where you want to extract info (in my case it is EV journal databases on which DA applies hold)

This can be used when you want to know if messages are expiring or not (troubleshooting)



Enterprise Vault Setting Quota for multiple users

$
0
0

Hi Readers,

A new requirement has arrived in which we have to set a different quota (individual quota) for 2000 users .

In enterprise vault this task is not pssible by policies or EVPM. Setting quota individually for 2000 users & managing it is a cumbersome task. There for I coordinated with Symantec & found a SQL table , you can edit this SQL table & set the individual quota.

The below SQL script can be used to set quota for multiple user at once, make sure to take backup of EV directory before proceeding (also Symantec will not support if anything happens wrong, do propertesting before proceeding)

This will set quota of around 6 gb & notify frequency when 90% quota is reached.

——————————————————————————————————————————————-

Use EnterpriseVaultDirectory

  update Archive set ArchiveLimitSize = ’6000000′

      , ArchiveLimitOperation = ’1′

      , ArchiveLimitStatus = ’1′

      , ArchiveNotifyOperation = ’6′

      , ArchiveNotifySize = ’90′

      where ArchiveName in (‘Sukhija, Vikas’,'user2′,’user3′)

—————————————————————————————————————————————-


Enterprise Vault Email Notifications issue Part 1

$
0
0

Hi Readers,

We have analysed that quota warning email notification does’nt work as required, Our enviornment for EV is on version 9.0.3

The policy we are using is age based & we want user should be notified when his/her vault reaches 90% of the vault quota.(Global 3GB quota is applied for  Archive Vaults at site level)

We have modified the default warning message & copied it to enterprisevault folder as required to make notifications work.

Its working fine but there are two issues:

1. It is not working for users that have their vault full but their mailbox is not older then a year(New to company) –age based policy is 1 year

2.  If the user has moved the email messages to vault & he does’nt have anything older then a year then also it does’nt email to user about full vault.

To overcome this problem , What We are doing is using operation reports in enterprise vault (SQL reporting) –> adding a subscription to write the quota report to a file share & after that We will write some script that will read that file & send quota warning notification.

I will publish the script in part 2 of this blog post.


Enterprise Vault Email Notifications issue Part 2

$
0
0

Hi Readers,

As agreed in previous post I am sharing the script that I have created for sending quota warning messages when vault quota ia approacing.

This script will read excel file & match the conditions that are defined by if statement.

Prerequisites:-

1. Create subscriptions in SQL reporting so that files are dropped in

C:\EvReports\VaultQuota\ (We have 6 partitions so there are 6 files in my case)

2.  Script should be run from c:\scripts

3. Machine should have exchange snapin installed.

4. EV version is 9.0.3 in our enviornment

5. Change the paths & names according to your enviornment( let me know if you are having issues)

6. Open word & write a message that you want to send it to users(save as Enterprise Vault.htm at location c:\scripts\Enterprise Vault.htm)

##########################################################################
# Author: Vikas Sukhija
# Date:- 05/02/2012
# Description:- This script will read the file generated from Enterprise vault reporting services
#               & will send email to users that are approaching quota #Limit.

#added start & stop transcript to log the whole console
###########################################################################
Start-Transcript

function travrese ($Path)

{
# —————————————————–
function Release-Ref ($ref) {
([System.Runtime.InteropServices.Marshal]::ReleaseComObject(
[System.__ComObject]$ref) -gt 0)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}
# —————————————————–

$objExcel = new-object -comobject excel.application
$objExcel.Visible = $False
$objWorkbook = $objExcel.Workbooks.Open($path)
$objWorksheet = $objWorkbook.Worksheets.Item(1)

$date = get-date -format d
# replace \ by -

$date = $date.ToString().Replace(“/”, “-”)

$intRow = 14

Do {

$Name = $objWorksheet.Cells.Item($intRow, 1).Value()
$Alias = $objWorksheet.Cells.Item($intRow, 2).Value()
$Quota = $objWorksheet.Cells.Item($intRow, 4).Value()
$Limit = $objWorksheet.Cells.Item($intRow, 7).Value()

# replace the domain\ with nothing so that we get user id

$Alias =  $Alias.ToString().Replace(“ABCD\”, “”)

Write-host $Alias

# Change conditions accordingly

If ((($Quota -gt 2764) -and  ( $Limit -eq 3072)) -or (($Quota -gt 4608) -and  ( $Limit -eq 5120)) -or (($Quota -gt 5529) -and  ( $Limit -eq 6144)) -or (($Quota -gt 9216) -and  ( $Limit -eq 10240)))
{
$output = “C:\scripts” + “\” + “output” + “\” + “Notify” + $date + “_.log”

Add-content $output $Alias
}

$intRow++

}
While ($objWorksheet.Cells.Item($intRow, 2).Value() -ne $null )

$objExcel.Quit()

$a = Release-Ref($objWorksheet)
$a = Release-Ref($objWorkbook)
$a = Release-Ref($objExcel)

}

$Path1 = “C:\EvReports\VaultQuota\Vault Store Usage by Archive 01VS.xls”
$Path2 = “C:\EvReports\VaultQuota\Vault Store Usage by Archive 02VS.xls”
$Path3 = “C:\EvReports\VaultQuota\Vault Store Usage by Archive 03VS.xls”
$Path4 = “C:\EvReports\VaultQuota\Vault Store Usage by Archive 4VS.xls”
$Path5 = “C:\EvReports\VaultQuota\Vault Store Usage by Archive 05VS.xls”
$Path6 = “C:\EvReports\VaultQuota\Vault Store Usage by Archive 06VS.xls”

travrese $Path1
Sleep 20
travrese $Path2
Sleep 20
travrese $Path3
Sleep 20
travrese $Path4
Sleep 20
travrese $Path5
Sleep 20
travrese $Path6
Sleep 20

##########################################################################################
#Send email function
##########################################################################################

# Added exchange snapin so that to fetch users primary email #address

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

$date = get-date -format d

# replace \ by -

$date = $date.ToString().Replace(“/”, “-”)

$input = “C:\Scripts\output\notify” + $date + “_.log”

write-host $input

$UserList = Get-Content $input

$log = “c:\scripts\logs\emailsent_” + $date +”.log”

write-host $log

foreach($user in $UserList)
{

$mailbox = get-mailbox $user
$user = $mailbox.PrimarySmtpAddress
write-host $user
add-content $log $user

$message = new-object System.Net.Mail.MailMessage(“donotreply@abcd.com“, $user)
$message.IsBodyHtml = $True
$message.Subject = “ACTION REQUIRED – Your Email Vault is Full”
$smtp = new-object Net.Mail.SmtpClient(“SmTpserver”)
$body = get-content “c:\scripts\Enterprise Vault.htm”
$message.body = $body
$smtp.Send($message)

}

#################################################################################################

Stop-Transcript


Enterprise Vault reporting error when scheduling a report “Maximum request length exceeded”

$
0
0

We have to schedule a quota uage report in EnterpriseVault but while scheduling we are getting “Maximum request length exceeded”.

This is not hapening on every report, while troubleshooting we found that it is getting generated only when the report is bigger in size. The error is definately related tpo SQL reporting services.

The report I was extracting was bigger then 6 MB in size. We need to editr web.config file of reporting services so that it can accomodate that.

Open web.config file of report manager(not report server) & find the httpRuntime  executionTimeout , append maxrequestlength parameter as below.

<httpRuntime executionTimeout=”9000″ maxRequestLength=”102400″ />

Reset IIS & see the magic. This worked for me so it should work for you as well.

This will allow the reports that are bigger then 4MB(4096)– Deafult value.

 

 


Integrate Sql Reporting to Sharepoint Site

$
0
0

Hi All,

Just want to share a good approach on how to integrate the SQL reporting Sharepoint Site.

This approach I have used to delegate the reporting (example:- Enterprise vault quota report) to Junior L1 Team.

Open the Sql Reports :-

Reports1

Set the permissions accordingly so that only L1 team has access to particular reports (not covering that in this Post)

Copy the Url

Now open the Site –> edit page & add the Page Viewer webpart –>edit webpart, paste Url & change the title (see below screen shot)

Reports2

Save it & Now When you will opne the SIte it will look as below (Share the Url)

Reports3

Regards

Sukhija Vikas


Enterprise Vault SQL Maintenance Task Hung

$
0
0

Hi All,

Today I am sharing a situation which we have faced issue in which maintenance tasks on Vault SQL server kind of hung.

We had waited for hours  but it was still running, We generally run these tasks by setting the application to read-only mode.

I had contacted my SQL friend to assist me in this then it was resolved quickly.

We ran the following SQL Query:

sp_who2 active

Then we had found the process that was locking the rebuild indexes processes & from which host it was coming.

This was enterprise-vault server  so We had changed the strategy of maintenance & now we stop the enterprise vault services as well during maintenance.

This solved our issue, so if you face same situation then this solution will help.

 

Regards

Sukhija Vikas

 

 

 


A Journal mailbox has a backlog of messages held in its Inbox

$
0
0

Hi Readers,

We had noticed that Enterprise vault (9.0.3) in our environment  had stopped journaling  of  messages from Journal mailbox &  numbers had past 200,000 items.

On going thru logs we found the below warning:

A Journal mailbox has a backlog of messages held in its Inbox

This is because by default if somehow messages past the 150,000 limit mark than EV stops the journal of messages.

For fixing this you have to set the below registry key to a higher number , We had to set it to 300,000 which was above the number of messages pending for Journal.

1. Go to Start | Run on the EV server with the Journal ask, type regedit and click OK. 

2. Expand HKEY_LOCAL_MACHINE\Software\KVS\Enterprise Vault\Agents.

3. Right-click the Agents key and choose New > DWORD Value.

4. Enter the name JournalWarningMsgCount (case sensitive).

5. Double-click JournalWarningMsgCount and enter a decimal value specifying the maximum number of messages allowed in the Journal Inbox before a warning message is logged.

For 64 but systems key will be under Wow6432Node

reference:  http://www.symantec.com/business/support/index?page=content&id=TECH77167

Regards

Sukhija Vikas

http://msexchange



Monitor Enterprise Vault Vault cache syncronization

$
0
0

Hi Readers,

We are having some issues with Vault sync for clients & these issues always get resolved by restarting of EnterpriseVault services.

Although we are working on a permanent fix but in the mean while we have created a script that will monitor folder if the new files are getting

created for the day. If files are not getting created than it will send us email alert.

Script can be downloaded from below link:

https://gallery.technet.microsoft.com/scriptcenter/Powershell-Script-to-3b984f02

Define the Variables inside the .ps1 file:

$email1 = “Vikassukhija@labtest.com”

$fromadd = “VaultCacheMonitoring@labtest.com”

$smtpserver =”smtpserver”

$EvMbx = @(“Server1″,”Server2″,”Server3″,”Server4″,”Server5″) # Define the servers## 

$path = “\\$_\e$\Cache\VCBuilds”  ##### Define Remote path, In our case ###folder to be monitored on the server was in E: drive   (e:\cache\vcbuilds)###################

After this schedule the batch file or to run manully just execute it.

You can moddify the condition accordingly, We are monitoring for a day(you can do for hours or mins.

$items=Get-ChildItem $path  | where {($_.LastWriteTime -le $date1) -and ($_.LastWriteTime -gt $date2)}

################################################################################## 
#       Author:Vikas Sukhija 
#       Reviewer:  
#       Date: 09/30/2014 
#       Description: Monitor vault cache 
################################################################################## 
 
$date = get-date -format d 
# replace \ by - 
$time = get-date -format t 
$month = get-date  
$month1 = $month.month 
$year1 = $month.year 
 
$date = $date.ToString().Replace(“/”, “-”) 
 
$time = $time.ToString().Replace(":""-"$time = $time.ToString().Replace(" """) 
 
$log1 = ".\Logs" + "\" + "JNLCount_" + $date + "_" + $time + "_.log" 
 
################Define Variables############ 
$email1 = "Vikassukhija@labtest.com" 
$fromadd = "VaultCacheMonitoring@labtest.com" 
$smtpserver ="smtpserver" 
 
$date1 = get-date 
$date2 = get-date -Hour 0 -Minute 0 -Second 0 
 
$EvMbx = @("Server1","Server2","Server3","Server4","Server5"# Define the servers##  
###############that needs folder monitoring############################ 
 
########################################################################## 
 
$EvMbx | foreach-object { 
 
$path = "\\$_\e$\Cache\VCBuilds"  ##### Define Remote path in our case folder to be monitored######### 
##############on the server was in E: drive (e:\cache\vcbuilds)################### 
 
$items=Get-ChildItem $path  | where {($_.LastWriteTime -le $date1-and ($_.LastWriteTime -gt $date2)} 
 
if($items -eq $null) 
{ 
Write-host "Vcbuild folder is not updating for $_ server EV services need restart" -foregroundcolor red 
 
#SMTP Relay address 
$msg = new-object Net.Mail.MailMessage 
$smtp = new-object Net.Mail.SmtpClient($smtpServer) 
 
#Mail sender 
$msg.From = $fromadd 
#mail recipient 
$msg.To.Add($email1$msg.Subject = "WARNING : Vault cache Sync not working server $_ :ACtion: Restart Vault Enterprise Vault Admin Service" 
$smtp.Send($msg) 
 
} 
else  
{ 
Write-host "$_ Count: "$items.count"" -foregroundcolor Green 
} 
 
} 
 
################################################################################## 
###############################################error reprting###################### 
if ($error -ne $null) 
      { 
#SMTP Relay address 
$msg = new-object Net.Mail.MailMessage 
$smtp = new-object Net.Mail.SmtpClient($smtpServer) 
 
#Mail sender 
$msg.From = $fromadd 
#mail recipient 
$msg.To.Add($email1$msg.Subject = "vault cache rebuild Mon Script error" 
$msg.Body = $error 
$smtp.Send($msg) 
       } 
  else 
 
      { 
    Write-host "no errors till now" -foregroundcolor Green 
      } 
######################################################################################
 Apart from this script, we are checking the vault cache  by creating a batch file:

On running the batch file we see the result about Vault Cache status on servers.

Capture

Regards

Sukhija Vikas

http://msexchange.me

 

 


Powershell for Monitoring Journal Mailboxes

$
0
0

Hi Readers,

Sharing a nice little script that we have written to Monitor Exchange 2010 Journal mailboxes.

Our Goal here is :- if the Messages in the Journal mailboxes increases beyond 15000 messages

than team needs to check what is wrong with Enterprisevault, If journaling services are working fine or not.

Extract the zip file from below link, edit the .ps1 file, define the alert email & mailboxes that needs to be monitored

https://gallery.technet.microsoft.com/scriptcenter/Powershell-to-Journal-57cc1a0c

$email1 = “Vikas@labtest.com”

$from = “Systems.Monitoring@labtest.com”

$smtpserver =”smtp.labtest.com”

$JNLMbx = @(“Journal Archive01″,”Journal Archive02″,”Journal Archive03″,

“Journal Archive04″,”Journal Archive05″,”Journal Archive MP01″,”Journal Archive MP02″,

“Journal Archive MP03″,”Journal Archive MP04″,”Journal Archive MP05″,”Journal Archive MP04″,”Journal Archive MP05″)

Define the threshold for alert

if($itemc -gt “15000”)

Schedule the batch file from task scheduler (we monitor it every hour)

You can find the logging under logs folder, which will log the count of messages when script runs.

################################################################################## 
#       Author:Vikas Sukhija 
#       Reviewer:  
#       Date: 09/02/2014 
#       Description: Monitor Jopurnal Mailboxes 
################################################################################## 
 
$date = get-date -format d 
# replace \ by - 
$time = get-date -format t 
$month = get-date  
$month1 = $month.month 
$year1 = $month.year 
 
$date = $date.ToString().Replace(“/”, “-”) 
 
$time = $time.ToString().Replace(":""-"$time = $time.ToString().Replace(" """) 
 
$log1 = ".\Logs" + "\" + "JNLCount_" + $date + "_" + $time + "_.log" 
 
 
$email1 = "Vikas@labtest.com" 
$from = "Systems.Monitoring@labtest.com" 
$smtpserver ="smtp.labtest.com" 
 
 
$JNLMbx = @("Journal Archive01","Journal Archive02","Journal Archive03","Journal Archive04""Journal Archive05","Journal Archive MP01","Journal Archive MP02","Journal Archive MP03""Journal Archive MP04","Journal Archive MP05","Journal Archive MP04","Journal Archive MP05") 
 
##############ADD Exchange Shell ################################################ 
 
If ((Get-PSSnapin | where {$_.Name -match "Microsoft.Exchange.Management.PowerShell.E2010"}) -eq $null) 
{ 
    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 
} 
 
$JNLMbx | foreach-object { 
 
$itemc = (Get-MailboxStatistics $_).itemcount 
 
if($itemc -gt "15000") 
   { 
    Write-host "Count for $_ is $itemc" -foregroundcolor Red 
    Add-content $log1 "Count for $_ is $itemc" 
        $subject = "Event Notification : OPEN CRITICAL : Count for $_ is $itemc" 
    $message = new-object Net.Mail.MailMessage 
    $smtp = new-object Net.Mail.SmtpClient($smtpserver) 
    $message.From = $from 
    $message.To.Add($email1) 
    $message.subject = $subject 
        $smtp.Send($message) 
 
   } 
else 
   { 
 
   Write-host "Count for $_ is $itemc" -foregroundcolor Green 
   Add-content $log1 "Count for $_ is $itemc" 
    
   } 
 
} 
 
##################################################################################
Regards
Sukhija Vikas

http://msexchange.me


Remove EnterPriseVault Shortcut Class Message after Office 365 Migration

$
0
0

Hi Readers,

One of our Project Client migrated to Office 365 but issue is EnterpriseVault shortcut items were also migrated so now it is required to remove those shortcut messages.

These messages are of Class: IPM.Note.EnterpriseVault.ShortCut

I started searching the internet for some script so that I don’t have to rework on what has already been done by the community.

First Method that I came across was using MRM

http://www.symantec.com/business/support/index?page=content&id=TECH63556

but we were interested in some scripting so we came across below two scripts that didn’t worked for us & we had issues running those (had not enough time to troubleshoot), others also faced the similar issues that can be seen in the comments.

http://blogs.technet.com/b/manjubn/archive/2012/03/31/exchange-2010-search-and-delete-items-by-messageclass-ews-method.aspx

http://eightwone.com/2013/05/16/removing-messages-by-message-class-from-mailbox/

Than I started writing one of my own which is based on outlook.

http://msexchange.me/2014/11/15/remove-messages-based-on-message-class-outlook-powershell/

Finally I found the below one that absolutely worked fine , without a single issue.

http://blogs.msdn.com/b/emeamsgdev/archive/2013/06/25/powershell-search-mailbox-for-items-of-a-particular-message-class-itemclass.aspx

Just want to share the research…

Regards

Sukhija Vikas

http://msexchange.me


Enterprise Vault Sql query for checking messages that are due for expire but are not on hold

$
0
0

Hi Readers,

I am a bit busy now a days & working on some new projects so dednt got atime to blog much.

Currently i am engaged in EV & DA stuff  so below is the query that can be used for checking messages that are due for expire but are not on hold

SELECT COUNT( * )
FROM Saveset ss
WHERE archiveddate < DATEADD(DAY, -90, GETDATE())
AND ss.SavesetIdentity  NOT IN
(SELECT DISTINCT savesetidentity FROM holdsaveset)

Out put will be a number.

Run this on each database from where you want to extract info (in my case it is EV journal databases on which DA applies hold)

This can be used when you want to know if messages are expiring or not (troubleshooting)


EnterpriseVault Discovery Accelerator(DA) Searches Hang/Failing

$
0
0

Hi Readers,

We have recently faced one issue which got some light as our DA team was not able to search effectively. Searches were either failing or getting stuck, only workaround was to reset the services of Enterprise Vault Journal servers. It was getting worse day by day.

On research & after logging call with Symantec , finally root cause was found:

On 10 August 2015, Microsoft released KB3076895, a critical security update for Windows operating systems. The changes made by this update address a vulnerability in MS Windows operating systems.  This update has been found to impact IIS, ASP and .NET functionality for numerous software applications. 

Reference: https://support.symantec.com/en_US/article.TECH232439.html

Microsoft has released the FIX KB3092627 but unfortunately it is only released for windows 7 & windows server 2008 R2, we are facing issues on server 2008 std edition.

Only solution for windows server 2008 as of now is to uninstall the KB3076895 article from whole EnterpriseVault environment till MS releases the fix.. ( This is what we have done to resolve the issue).

Regards

Sukhija Vikas

http://msexchange.me

 


Disable Journal for Voice Mails – Exchange Server

$
0
0

Journal (Standard or Premium) has been implemented in most the Exchange environments , but Most of the legal departments doesn’t want to Journal the Voice emails , as well as they don’t want it to be forwarded or manually archived to virtual vaults.

So on a whole there are three requirements :

  • No Journal of Unified Messaging voice mails.
  • Restrict Forwarding to outside world.
  • Stop Manual Archiving.

Here is what we could do with existing Messaging infrastructure.

–No Journal of Unified Messaging voice mails:

Exchange server 2010 & 2013 has option for this in transport config.

VoicemailJournalingEnabled

Set-TransportConfig -VoicemailJournalingEnabled $false

You should set this option to false so that Journal of Voice mails are disabled globally.

Running Get-transportconfig can be used to check if its disabled or not.

Capture

–Restrict Forwarding

So next thing is we don’t want user should fwd the voice emails to outside world &  IRM etc solutions are not implemented. This can be achieved at the gateway level or exchange transport rules as well.

So here is the example what can be done ( sharing for Ironport Gateway)

Create outgoing content filters:

Attachment file Info : .*@(domain\.com).*(Voice Mail)

Attachment file Info : mp3

Capture

You can set action as drop or you can set action as quarantine.

Now two of the requirements have been fulfilled, Our third requirement is

–Stop Manual Archiving

Taking the example of Enterprise Vault , We want to stop the manual archiving by users so that they will not be able to move the Voice email messages to their Virtual Vaults.

Lets set it now, Open  Vault Administration Console –> right click –> Directory

In the Exchange Message Classes add the below three UM message classes.

IPM.Note.Microsoft.Missed.Voice
IPM.Note.Microsoft.Voicemail.UM
IPM.Note.Microsoft.Voicemail.UM.CA

Capture

After that Check –> in each Mailbox Policy –>these classes are not ticked.

Capture

Now when the policy is pushed to user mailboxes than they would not be able to move those messages to Virtual Vault.

For third part our testing is still in progress..

If you are in same situation, you can refer this article & provide the solution.

Regards

Sukhija Vikas

http://msexchange.me

 

 


How to remove Multiple User vaults Enterprise Vault

$
0
0

There seems to be very limited options in Powershell when it comes to Enterprisevault.

In this blog I am sharing a experience of Enterprisevault 9.0 where we have to cleanup around 6000 User Vaults & PowerShell is a no go here because No such cmdlets exists.

So let ‘s get back to old school & use some other methods for speeding up the things:)

Some of you might have already guessed that I will be using some SQL way:)

Yes there is a inbuilt SQL stored procedure that I will use along with Notepad ++  else it would be very clumsy task.

Let’s start & get the List of User Alias or SaMaccount Names that needs removal.

Prepare the below command using Notepad++ (Same method we used in one of the older post of DL upgrade a year ago)

Copy the ids as below –> Notepad++

Capture

Click on Search –> Replace (You can use Cntrl + H as well)

Capture

Now use the Regex Pattern –   ^(.+)$ (Find What)

Replace with : or MbxAlias = ‘\1’

Capture

Hit Replace All to see the magic:)

Capture

Now you need to connect SQL server with SQL management studio & run the below query on EnterprisevaultDirectory database in-order to get the Defaultvaultid as that would be used when running the stored procedure.

select MbxNtuser,MbxAlias,DefaultVaultId from ExchangeMailboxEntry

where MbxAlias = ‘User1’

or MbxAlias = ‘User2’

or MbxAlias = ‘User3’

or MbxAlias = ‘User4’

or MbxAlias = ‘User5’

or MbxAlias = ‘User6’

Note: I have removed the first “or”, rest is just copy pasted.

Result from SQL:

Capture

Now copy this result & have the default vault ids in Notepad++

Follow the same procedure & build the command:

exec DeleteArchive ‘value copied to the clipboard for the Archive ID’

exec DeleteArchive ‘value copied to the clipboard for the Archive ID’

exec DeleteArchive ‘value copied to the clipboard for the Archive ID’

Stop the EV Storage service on the servers hosting the Vaults.

Open SQL management studio & run the command

use EnterpriseVaultDirectory

exec DeleteArchive ’16C529AC6165F6D479B0048769E64D03XXXXXX’

exec DeleteArchive ’16A30218AB8B4B6488BA98951679C2XXXXXXX’

exec DeleteArchive ‘1421E7F03089D0142BCD89459298XXXXXX’

exec DeleteArchive ’16E402CBA5D1C2648BEB5DC782AD6BXXXXX’

exec DeleteArchive ‘1BACE631613CB064BBEB6C13D2D515XXXXXX’

I always runs in the chunks of 500 or 1000, few might result in obvious errors because of legal holds, rest all will run fine.

After work is finished , start the EV Storage Service .

If you provision the user vaults  based on AD group than remove these users from that group as well, use one  of my scripts (search in my blog or technet gallery, you will easily find examples)

Finally you have to remove these users from the “ExchangeMailboxEntry” table , for this as well, you can use the same approach of Notepad++

delete from ExchangeMailboxEntry

where MbxAlias = ‘user1

or MbxAlias = ‘user2’

or MbxAlias = user3′

Let me know if you have any questions on the above process.

Note: Please take Veritas buy-in before following this method in your environment..

Regards

Sukhija Vikas

http://msexchange.me



Use EVPM to disable multiple archives

$
0
0

Sharing a method that can be used when you are doing office 365 migrations & you want to disable /ZAP multiple archives.

Disabling the archives using GUI method is cumbersome & can take a lot of time.

We are running the EVPM command manually but you can schedule it as well.

For running the EVPM script command you need the following:

  • ini file that has multiple legacy DNs
  • Exchange mailbox server Name
  • Enterprise vault directory server
  • Enterprise Vault Site name
  • System Mailbox

For Disabling Archives below are the INI contents :


; DirectoryComputerName, add the simple name of the EV server where you will run this script.
; SiteName is the name of the site as it appears in the VAC.

[Directory]
DirectoryComputerName = EVServer1
SiteName = EVSITE

; Use the Distinguished Name of the mailbox to be zapped. You can get this by running the archiving task in report mode for that mailbox and viewing the resulting report.

[Mailbox]
DistinguishedName=/o=Labtest/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=User1
DistinguishedName=/o=Labtest/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=User2

[Folder]
Name = MailboxRoot
Enabled = False


For Zap below are the INI contents:


; DirectoryComputerName, add the simple name of the EV server where you will run this script.
; SiteName is the name of the site as it appears in the VAC.

[Directory]
DirectoryComputerName = EVServer1
SiteName = EVSITE

; Use the Distinguished Name of the mailbox to be zapped. You can get this by running the archiving task in report mode for that mailbox and viewing the resulting report.

[Mailbox]
DistinguishedName=/o=Labtest/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=User1
DistinguishedName=/o=Labtest/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=User2

[Folder]
Name = MailboxRoot
Zap = TRUE


After saving the ini file you can run the below commands on EV server from command prompt.

EVPM cmd resides inside the EnterpriseVault installation path(change to that directory inside command prompt)

\Program Files (x86)\Enterprise Vault

EVPM.EXE -e “Exchange Mailbox server ” -m “EV system Mailbox” -f C:\EVPM\EV_Disabled.ini

EVPM.EXE -e “Exchange Mailbox server ” -m “EV system mailbox” -f C:\EVPM\EV_ZAP.ini

You wll also need EV system mailbox that you have used in the archive task(See below)

You now have all the information & can do ZAP or disable for multiple user mailboxes.

Disable will disable user account in EV so that no further operations can be performed by the user,

ZAP will remove the Enterprisevault properties from user mailbox.

Note: We have used this process with version 9 & think that this will work with other versions as well.

Thanks for reading

Sukhija Vikas

http://SysCloudPro.com

 


Viewing all 16 articles
Browse latest View live


Latest Images