Archives par étiquette : Exchange

Exporter les statistiques de Enterprise Vault

Enterprise Vault
Voici comment j’exporte les statistiques d’archivage dans Symantec Enterprise Vault.

$Server = "server30"
$Database = "EVaultStoreArchive1"
$AttachmentPath = ".Export_EVEV_1_Stats.csv"
$SqlQuery = "SELECT [ArchiveName], ArchivedItems, CAST(ArchivedItemsSize AS decimal(20, 0)) AS ArchivedItemsSize From view_ListVaults INNER JOIN [EnterpriseVaultDirectory].[dbo].[ArchiveView] ON view_ListVaults.ArchivePointId = [EnterpriseVaultDirectory].[dbo].[ArchiveView].[VaultEntryId]"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
$objTable = $DataSet.Tables[0]
$objTable | Export-CSV $AttachmentPath
Write-Host "Export terminé."
$resfile = New-Item -ItemType file -Path ".Export_EVEV_1_Stats_Result.csv" -Force
Add-Content -Path $resfile -Value "FirstOU,Name,ArchivedItems,ArchivedItemsSize,VaultCache,OrganizationalUnit"
$evnom = "CN=EV_NOMADES,CN=Users,DC=domain,DC=local"
$InputFile = import-csv -Path $AttachmentPath
foreach ($Mailbox in $InputFile)
{
$user = Get-QADUser -Identity $Mailbox.ArchiveName
$user.Name
if ($user.NestedMemberOf -contains $evnom )
{$vaultchache = "True"}
Else
{$vaultchache = $null}
$FirstOU = $User.ParentContainer -split("/")
$FirstOU = $FirstOU[1]
Add-Content -Path $resfile -Value "$($FirstOU),$($Mailbox.ArchiveName),$($Mailbox.ArchivedItems),$($Mailbox.ArchivedItemsSize),$($vaultchache),$($user.ParentContainer)"

Stop/Start des services à distance.

Arrêter et démarrer un service sur un serveur à distance.
Dans l’exemple, je traite le service « Microsoft Exchange Replication Service ».

Stop:

$Svc = Get-WmiObject -Computer SRV001 win32_service  -Filter "name='MSExchangeRepl'"
$Result = $Svc.StopService()
$Result.ReturnValue

Start:

$Svc = Get-WmiObject -Computer SRV001 win32_service  -Filter "name='MSExchangeRepl'"
$Result = $Svc.StartService()
$Result.ReturnValue

Export des utilisateurs Blackberry

Exporter la liste des utilisateurs Blackberry avec Powershell.
Le principe est d’effectuer un query sur la base SQL du BES avec Powershell.

$SqlServer = "SRV00026"
$SqlCatalog = "BESMgmt"
$SqlQuery = "select userconfig.DisplayName,userconfig.MailboxSMTPAddr FROM UserConfig"


$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SqlServer; Database = $SqlCatalog; Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]

Espace disque libre sur les serveurs de BAL.

Ce script affiche la taille et le pourcentage d’espace disque libre sur tous les volumes montés sur les serveurs de boites aux lettres.

$mbserver = Get-MailboxServer 
Foreach ($server in $mbserver) { 
"___________" 
"" 
$server.name 
"___________" 
"" 
Get-WmiObject win32_volume -ComputerName $server.name | Sort-Object -Property capacity | Format-Table  @{e={$_.systemname};n="Server" }, @{e={$_.name};n="Volume" }, @{ e={[math]::round($_.Capacity/1GB,2)};n="Capacity (GB)" }, @{ e={[math]::round($_.FreeSpace/1GB,2)};n="FreeSpace (GB)" }, @{ e={[math]::round(($_.FreeSpace*100)/$_.Capacity) };n="PourcentFree" } }

Compatibilités Exchange.

Voici les différents tableaux de compatibilités entre les versions d’Exchange et les versions de systèmes d’exploitation, d’Active Directory, explorateurs Internet…

C’est très fournit et je pense complet.

Vu la quantité d’information, voici le lien:
http://technet.microsoft.com/en-us/library/ee338574%28EXCHG.80%29.aspx

Désactive l’héritage du quota sur un groupe.

Ce script à lancer régulièrement, désactive le quota sur les membres d’un groupe et l’active sur tous les autres.

#	Liste des comptes sans héritage et replace l'heritage si l'utilisateur n'est pas dans le groupe "no_quota".

Get-Mailbox -ResultSize Unlimited |
Where-Object { $_.UseDatabaseQuotaDefaults -eq $false } |
	ForEach-Object {
		$User = get-qaduser -samaccountname $_.Alias
		if ($User.memberof -match "no_quota")
		{}
		else
			{
			$User.samaccountname
			Set-Mailbox $User.samaccountname -UseDatabaseQuotaDefaults $true
			}
	}
#	Recherche des groupes "no_quota" et enlève l'héritage si l'utilisateur est dans ce groupe.

Get-Group -Identity no_quota |
	ForEach-Object {
		$groupdn=("LDAP://"+$_.DistinguishedName)
		$group = ([ADSI]$groupdn)

		ForEach ($member in $group.member){
			Set-Mailbox -Identity $member -IssueWarningQuota Unlimited -ProhibitSendQuota Unlimited -ProhibitSendReceiveQuota Unlimited -UseDatabaseQuotaDefaults $false
		}
	}

Importer la création de boites aux lettres.

Permet d’importer la création de boites aux lettres depuis un liste texte.

$InputFile = import-csv -Path ".\recipientssi.csv"
$i=0
$password = ConvertTo-SecureString "P@ssW0rd" -AsPlainText -Force
$ou = "domain.local/OU01_Compta"
foreach ($NewMailbox in $InputFile)
{
	$upn = $NewMailbox.alias + "@domain.local"
	New-Mailbox -Alias $NewMailbox.Alias -Name $NewMailbox.DisplayName -FirstName $NewMailbox.FirstName -LastName $NewMailbox.LastName -UserPrincipalName $upn -Password $password -OrganizationalUnit $ou -Database EXCHSRV001\DB001
	$i=$i+1
  	if ($InputFile.Count -ge 0)
    {
    	Write-Progress -activity " *  * Creating Mailboxes" -Status $upn -percentcomplete ($i/$InputFile.Count*100) 
    }
}