Gérer à distance un serveur Exchange 2010 avec PowerShell
Vous souhaitez administrer vos serveurs Exchange 2010 à distance depuis un ordinateur ou un serveur sur lequel ne sont pas installés les outils d’administration Exchange 2010.
Voici la méthode pour le faire avec Windows Management Framework.
Créez un session avec New-PSSession:
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch-server01/PowerShell/ -Authentication Kerberos |
Pour créer une session avec New-PSSession en utilisant un autre compte, utilisez:
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch-server01/PowerShell/ -Authentication Kerberos -Credential (Get-Credential) |
Importez la session.
Import-PSSession $session |
Vous pouvez maintenant lancer les commandes PowerShell Exchange 2010 sur votre système.
Pensez à quitter proprement la session avec :
Remove-PSSession $session |
Pour les systèmes plus anciens que Windows Seven et Windows Server 2008 R2, il est tout de même nécessaire d’avoir installé PowerShell 2.0 et WinRM 2.0.
Les sources se trouvent ici.
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Exporter la liste des machines virtuelles
Cette ligne de commande permet grâce à PowerCli d’exporter la liste des VM avec quelques informations comme la version de l’OS, le nombre de CPU, l’espace disque et la RAM allouées, le serveur host.
Get-Vm | Select-Object @{e={$_.name};n="Name"},@{e={$_.guest.OSFullName};n="OSFullName"},@{e={$_.numCpu};n="CPUNumber"},@{e={$_.MemoryMB};n="MemoryMB"},@{e=$_.ProvisionedSpaceGB};n="ProvisionedSpaceGB"},@{e={$_.VMHost};n="VMHost"} | Export-csv -Path c:\temp\export-vm.csv -Encoding utf8 |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Tableau de compatibilité entre les versions de Exchange et d’Outlook
Tableau des versions de Outlook supportées par Exchange 2007/2010/2013.
| Exchange 2007 | Exchange 2010 | Exchange 2013 | |
|---|---|---|---|
| Outlook 2002 | X | ||
| Outlook 2003 | X | ||
| Outlook 2003 SP2 | X | X | |
| Outlook 2007 | X | X | |
| Outlook 2007 SP3 | X | X | X |
| Outlook 2010 | X | X | |
| Outlook 2010 SP1 | X | X | X |
| Outlook 2013 | X |
Source: Outlook Versions Supported by Exchange 2007/2010/2013/Online
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Désactiver ActiveSync sur plusieurs boites.
Permet de désactiver ActiveSync sur plusieurs boites aux lettres.
Get-Mailbox *christophe* | Set-CASMailbox -ActiveSyncEnabled $false |
Pour désactiver ActiveSync sur toutes les boites:
Get-CASMailbox -Resultsize unlimited | where-object {$_.ActiveSyncEnabled -eq $true} | Set-CASMailbox -ActiveSyncEnabled $false |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Ajouter le Snap-In Powershell de Exchange
L’ajout du Snap-In permet de lancer des commandes Exchange dans un console PowerShell ouverte en exécutant la powershell.exe.
C’est utile pour l’exécution de scripts par taches planifiées
Exchange 2007:
Add-PSSnapin "Microsoft.Exchange.Management.PowerShell.Admin" |
Exchange 2010:
Add-PSSnapin "Microsoft.Exchange.Management.PowerShell.E2010" |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Créer 1000 comptes de test
Pour faire des tests sur une maquette, il est parfois nécessaire de créer beaucoup de comptes.
Il est possible de créer des comptes Test1, Test2, Test3… Test58.
Efficace mais par très fun. Il manque un peu d’accents ou de caractères spéciaux.
Je vous propose une liste de 1000 acteurs et actrices du cinéma français et international.

A télécharger ici.
Vous pourrez importer ce fichier dans votre Active Directory avec ce script.
Import-Csv -Path .\cinéma.txt | foreach { $firstname = (Get-Culture).TextInfo.Tolower($_.prenom) $firstname = (Get-Culture).TextInfo.ToTitleCase($firstname) $lastname = (Get-Culture).TextInfo.ToUpper($_.nom) $name = $lastname + ' ' + $firstname $logname = $lastname.replace("-","") $name if ($_.nom.Length -le 6) { $samaccount = $firstname.Remove(1) + "." + $logname } Else { $samaccount = $firstname.Remove(1) + "." + $logname.Remove(6) } $upn = $samaccount + "@ad08.local" $AccountPassword = (ConvertTo-SecureString "P@ssW0rd" -AsPlainText -force) New-ADUser -Name $name -GivenName $firstname -Surname $lastname -Path "OU=Comptes,DC=ad08,DC=local" -SamAccountName $samaccount -UserPrincipalName $upn -AccountPassword $AccountPassword -Enabled $true -ChangePasswordAtLogon $true } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Envoi d’un message de test via SMTP.
Voici un petit script VBS très simple qui permet d’envoyer un message SMTP depuis un système Windows.
Ce script est compatible avec toutes les versions de Windows.
Il peut servir pour tester un relais SMTP ou la capacité d’un ordinateur à envoyer des messages en SMTP sans utiliser Outlook.
Il suffit de copier ce code dans un fichier texte et renommer l’extension du fichier en « .vbs ».
'Envoie d'un e-mail via un serveur SMTP'
With CreateObject("CDO.Message")
.From="adress@domainfrom.com"
.To="adress@domainto.com"
.Subject="-Test Message-"
.HTMLBody="Test Message"
.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "my-relay.com"
.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Configuration.Fields.Update
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With |
Il ne reste plus qu’à changer l’adresse de l’émetteur, du destinataire et du relais SMTP.
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Augmenter la taille d’un volume
Avec les machines virtuelles sur VMware et HyperV, quand il n’y en a plus, il y en a encore. Cela vaut pour le CPU, la mémoire, le réseau et surtout le disque.
Voici comment rapidement étendre un volume de données sur un serveur.
Une fois que vous avez ajouté les gigas nécessaires à votre machine virtuelle, vous pouvez étendre la partition.
Il y a quelques conditions:
- Le volume ne doit pas être le système.
- L’espace ajouté et le volume à étendre doivent être contigus.
Pour Windows 2000 et 2003 Server, utilisez Diskpart.

Télécharger diskpart pour Windows 2000 ici.
Pour Windows 2008 Server, utilisez le gestionnaire de disques.
Cliquez droit sur le volume souhaité et cliquez sur Etendre le volume.
Suivez ensuite l’assistant.
Plus d’informations dans l’article Microsoft ici.
Pour rappel Microsoft recommande un partition système de 40Go ou plus.
Configuration système requise pour Windows Server 2008
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Exporter la liste des fichiers d’un lecteur par extension.
Dans l’idée de faire un peu de ménage sur un lecteur, je cherche à identifier les fichiers multimédia avec le chemin et la taille.
Ce script va créer un fichier texte pour chaque extension.
Get-ChildItem -Recurse -Path "E:\" -Include *.mp3,*.mp4,*.avi -ErrorAction silentlycontinue | ForEach { Write-Progress -activity "Fichiers Multimédia" -Status $_.FullName $extension = $_.name.split(".")[-1] $size = “{0:N2}” -f ($_.Length/1mb) $logfile = ".\logs\" + $extension + ".txt" $present = Test-Path -Path $logfile if ( $present -ne "true") { Write-host "Création de $logfile" $resfile = New-Item -ItemType file -Path $logfile -Force Add-Content -Path $logfile -Value "Nom;Chemin;Taille" Add-Content -Path $logfile -Value "$($_.name );$($_.DirectoryName);$($size)" } Else { Add-Content -Path $logfile -Value "$($_.name );$($_.DirectoryName);$($size)" } } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Exporter la liste des gros fichiers présents sur un lecteur.
Voici un script pour exporter dans un fichier texte la liste des fichiers de plus de 100Mo présents sur un lecteur.
Get-ChildItem -Recurse -Path "E:\" -ErrorAction silentlycontinue | Where-Object { $_.length -gt 100000000 } | ForEach { Write-Progress -activity "Fischiers de plus de 100Mo" -Status $_.FullName $size = “{0:N2}” -f ($_.Length/1mb) $logfile = ".\logs\Gros_fichiers.txt" $present = Test-Path -Path $logfile if ( $present -ne "true") { Write-host "Création de $logfile" $resfile = New-Item -ItemType file -Path $logfile -Force Add-Content -Path $logfile -Value "Nom;Chemin;Taille" Add-Content -Path $logfile -Value "$($_.name );$($_.DirectoryName);$($size)" } Else { Add-Content -Path $logfile -Value "$($_.name );$($_.DirectoryName);$($size)" } } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :




Commentaires récents