logo_mini_comments

Sans partage, la connaissance n'est rien !

Fil de navigation

Voici une liste de commandes et de scripts en PowerShell utiles afin de pouvoir récupérer et exporter des informations depuis votre serveur de messagerie Exchange.

 

One-Liners :

Lancer Exchange Management Shell afin de pouvoir exécuter ces commandes.

 

#OL01 - Exporter la boîte aux lettres d'un utilisateur vers un fichier .pst

Par défaut l’administrateur n’a pas accès à ces fonctions, il faut avant effectuer une opération pour déléguer les droits.

 

Pour donner les droits, lancer la commande suivante :

New-ManagementRoleAssignment –Role "Mailbox Import Export" –User "DOMAIN\User"

 

Fermer puis relancer votre console.

 

New-MailboxExportRequest -Mailbox "MailboxOrMailUserIdParameter" -FilePath "C:\Temp\MailboxOrMailUserIdParameter.pst"

 

#OL02 - Afficher l’état détaillé d’une demande d’exportation en cours qui a été lancée par la commande New-MailboxExportRequest

Get-MailboxExportRequest

 

#OL03 - Afficher la taille et l’espace libre des bases de données Exchange (Trié par espace libre)

Colonnes récupérées : Name, DatabaseSize, AvailableNewMailboxSpace

Get-MailboxDatabase -Status | Sort-Object AvailableNewMailboxSpace -Descending | Select-Object Name, DatabaseSize, AvailableNewMailboxSpace

 

#OL04 - Afficher les informations d'intégrité et d'état sur toutes les banques de données

Colonnes récupérées : Name, Status, CopyQueueLength, ReplayQueueLength, LastInspectedLogTime, ContentIndexState

Get-MailboxDatabaseCopyStatus

 

#OL05 - Afficher la taille et l'état du quota d'une boîte aux lettres donnée

Colonnes récupérées : DisplayName, StorageLimitStatus, TotalItemSize, TotalDeletedItemSize, ItemCount, DeletedItemCount

Get-MailboxStatistics -Identity "GeneralMailboxOrMailUserIdParameter" | Select-Object DisplayName, StorageLimitStatus, TotalItemSize, TotalDeletedItemSize, ItemCount, DeletedItemCount

 

#OL06 - Exporter les boîtes aux lettres d'une banque de données (Fichier .csv trié par taille des BALs)

Colonnes récupérées : DisplayName, TotalItemSize, ItemCount

Get-MailboxStatistics -Database "DatabaseIdParameter" | Sort-Object TotalItemSize, ItemCount -Descending | Select-Object DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Temp\DatabaseIdParameter-Exchange-Users.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL07 - Exporter les boîtes aux lettres de toutes les banques de données (Fichier .csv trié par base et par taille de BALs)

Colonnes récupérées : Database, DisplayName, TotalItemSize, ItemCount

Get-MailboxStatistics -Server "ServerIdParameter" | Sort-Object Database, TotalItemSize -Descending | Select-Object Database, DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Temp\All-Exchange-Users.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL08 - Exporter les boîtes aux lettres d'une banque de données (Fichier .csv trié par date de création des BALs)

Colonnes récupérées : DisplayName, WhenMailboxCreated

Get-Mailbox -Database "DatabaseIdParameter" | Sort-Object WhenMailboxCreated -Descending | Select-Object DisplayName, WhenMailboxCreated | Export-Csv -Path "C:\Temp\DatabaseIdParameter-Exchange-UsersCreationDate.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL09 - Exporter les boîtes aux lettres de toutes les banques de données (Fichier .csv trié par date de création des BALs)

Colonnes récupérées : DisplayName, WhenMailboxCreated

Get-Mailbox -Server "ServerIdParameter" | Sort-Object WhenMailboxCreated -Descending | Select-Object DisplayName, WhenMailboxCreated | Export-Csv -Path "C:\Temp\Exchange-AllUsersCreationDate.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

Voici une liste de commandes et de scripts en PowerCLI utiles afin de pouvoir récupérer et exporter des informations depuis votre infrastructure sous VMware.

 

One-Liners :

Lancer VMware vSphere PowerCLI afin de pouvoir exécuter ces commandes.

 

#OL01 - Se connecter au vCenter

Connect-VIServer -Server localhost -Protocol https -User Administrator -Password Password

 

#OL02 - Exporter les VMs du vCenter dans un fichier .csv

Colonnes récupérées : Name, PowerState, Version, NumCpu, MemoryMB, VMHost, Folder, Description

Get-VM | Select-Object Name, PowerState, Version, NumCpu, MemoryMB, VMHost, Folder, Description | Export-Csv -Path "C:\Temp\VMs.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL03 - Exporter les ESXs du vCenter dans un fichier .csv

Colonnes récupérées : Name, ConnectionState, PowerState, Model, NumCpu, CpuUsageMhz, CpuTotalMhz, MemoryUsageGB, MemoryTotalGB, ProcessorType, Version

Get-VMHost | Select-Object Name, ConnectionState, PowerState, Model, NumCpu, CpuUsageMhz, CpuTotalMhz, MemoryUsageGB, MemoryTotalGB, ProcessorType, Version | Export-Csv -Path "C:\Temp\ESXs.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL04 - Exporter les Datastores du vCenter dans un fichier .csv

Colonnes récupérées : Name, Datacenter, FreeSpaceGB, CapacityGB

Get-Datastore | Select-Object Name, Datacenter, FreeSpaceGB, CapacityGB | Export-Csv -Path "C:\Temp\Datastores.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL05 - Exporter les Snapshots du vCenter dans un fichier .csv

Colonnes récupérées : VM, SizeGB, Created, Name, Description

Get-VM | Get-Snapshot | Select-Object VM, SizeGB, Created, Name, Description | Export-Csv -Path "C:\Temp\Snapshots.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL06 - Mettre à jour les VMware Tools sur une VM sans reboot

Update-Tools -NoReboot -VM "VM_NAME"

 

Voici une liste de commandes et de scripts en PowerShell utiles afin de pouvoir récupérer et exporter des informations depuis votre Active Directory.

 

One-Liners :

Lancer le Module Active Directory pour Windows PowerShell afin de pouvoir exécuter ces commandes.

 

#OL01 - Exporter les computers de l'AD dans un fichier .csv

Colonnes récupérées : Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description

Get-ADComputer -Filter * -Properties * | Select-Object Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description | Export-Csv -Path "C:\Temp\Computers.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL02 - Exporter les Domain Controllers de l'AD dans un fichier .csv

Colonnes récupérées : Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description

Get-ADComputer -Filter * -SearchBase "OU=Domain Controllers,DC=adpoc,DC=lan" -Properties * | Select-Object Name, IPv4Address, OperatingSystem, OperatingSystemServicePack, OperatingSystemVersion, Description | Export-Csv -Path "C:\Temp\Domain_Controllers.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL03 - Exporter les users de l'AD dans un fichier .csv

Colonnes récupérées : SamAccountName, GivenName, Surname, Enabled, LastLogonDate, Description

Get-ADUser -Filter * -Properties * | Select-Object SamAccountName, GivenName, Surname, Enabled, LastLogonDate, Description | Export-Csv -Path "C:\Temp\Users.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL04 - Exporter les groupes de l'AD dans un fichier .csv

Colonnes récupérées : Name, GroupScope, GroupCategory, Description

Get-ADGroup -Filter * -Properties * | Select-Object Name, GroupScope, GroupCategory, Description | Export-Csv -Path "C:\Temp\ADGroups.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL05 - Exporter les membres d'un groupe AD dans un fichier .csv

Colonnes récupérées : Name, SamAccountName

Get-ADGroupMember -Identity "GROUP_NAME" | Select-Object Name, SamAccountName | Export-Csv -Path "C:\Temp\Members.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL06 - Exporter les groupes AD d'appartenance à un user, computer, groupe ou un compte de service dans un fichier .csv

Colonnes récupérées : Name, GroupScope

Get-ADPrincipalGroupMembership -Identity "User1" | Select-Object Name, GroupScope | Export-Csv -Path "C:\Temp\Membership.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL07 - Ajouter des users AD (stockés dans un fichier csv) dans un groupe de sécurité

Import-Csv -Path "C:\Temp\Add-Users.csv" -Delimiter ";" | ForEach-Object { Add-ADGroupMember -Identity $_.GroupName -Members $_.SamAccountName }

 

Exemple du contenu du fichier Add-Users.csv avec les logins des comptes et les groupes AD :

SamAccountName;GroupName
User1;GroupName1
User2;GroupName2
User3;GroupName3

 

#OL08 - Supprimer des users AD (stockés dans un fichier csv) d'un groupe de sécurité

Import-Csv -Path "C:\Temp\Remove-Users.csv" -Delimiter ";" | ForEach-Object { Remove-ADGroupMember -Identity $_.GroupName -Members $_.SamAccountName -Confirm:$false }

 

Exemple du contenu du fichier Remove-Users.csv avec les logins des comptes et les groupes AD :

SamAccountName;GroupName
User1;GroupName1
User2;GroupName2
User3;GroupName3

 

#OL09 - Décocher l'option "never expires" sur des comptes stockés dans un fichier .csv

Import-Csv -Path "C:\Temp\Users.csv" | ForEach-Object { Set-ADUser -Identity $_.SamAccountName -PasswordNeverExpires $false }

 

Exemple du contenu du fichier Users.csv avec les logins des comptes AD :

SamAccountName
User1
User2
User3

 

#OL10 - Exporter les groupes vides de l'AD dans un fichier .csv

Colonnes récupérées : Name, GroupScope, GroupCategory, Description

Get-ADGroup -Filter * -Properties * | Where {-not $_.Members} | Select-Object Name, GroupScope, GroupCategory, Description | Export-Csv -Path "C:\Temp\ADGroups-Empty.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL11 - Exporter les users expirés de l'AD dans un fichier .csv

Colonnes récupérées : Name, SamAccountName, ObjectClass, AccountExpirationDate, LastLogonDate

Search-ADAccount -AccountExpired | Select-Object Name, SamAccountName, ObjectClass, AccountExpirationDate, LastLogonDate | Export-Csv -Path "C:\Temp\ExpiredAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL12 - Exporter les users désactivés de l'AD dans un fichier .csv

Colonnes récupérées : Name, ObjectClass, SamAccountName

Search-ADAccount -AccountDisabled -UsersOnly | Select-Object Name, ObjectClass, SamAccountName | Export-Csv -Path "C:\Temp\DisabledAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL13 - Exporter les users inactifs depuis 30 jours de l'AD dans un fichier .csv

Colonnes récupérées : Name, ObjectClass, SamAccountName

Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 30.00:00:00 | Select-Object Name, ObjectClass, SamAccountName | Export-Csv -Path "C:\Temp\InactiveAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL14 - Exporter les users de l'AD qui ont un mot de passe qui n'expire jamais dans un fichier .csv

Colonnes récupérées : Name, ObjectClass, SamAccountName

Search-ADAccount -PasswordNeverExpires | Select-Object Name, ObjectClass, SamAccountName | Export-Csv -Path "C:\Temp\PasswordNeverExpiresAccounts.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8

 

#OL15 - Créer des comptes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Add-Accounts.csv" -Delimiter ";" | ForEach-Object { New-ADUser $_.SamAccountName -GivenName $_.SamAccountName -displayName $_.SamAccountName -Description $_.AccountDescription -UserPrincipalName $_.SamAccountName -AccountPassword (ConvertTo-SecureString $_.AccountPassword -AsPlainText -Force) -CannotChangePassword $true -ChangePasswordAtLogon $false -PasswordNeverExpires $true -Enabled $true -Path $_.AccountOU -OtherAttributes @{businessCategory=$_.AccountBusinessCategory} }

 

Exemple du contenu du fichier Add-Accounts.csv avec les informations des comptes AD :

SamAccountName;AccountPassword;AccountDescription;AccountBusinessCategory;AccountOU
svct_App01;Pa$$w0rD;Service account TEST;TEST;"OU=Service Accounts,DC=lab,DC=microsoft,DC=com"
svcr_App01;Pa$$w0rD;Service account REC;REC;"OU=Service Accounts,DC=lab,DC=microsoft,DC=com"
svcp_App01;Pa$$w0rD;Service account PROD;PROD;"OU=Service Accounts,DC=lab,DC=microsoft,DC=com"

 

#OL16 - Désactiver des comptes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Disable-Accounts.csv" | ForEach-Object { Disable-ADAccount -Identity $_.SamAccountName }

 

Exemple du contenu du fichier Disable-Accounts.csv avec les logins des comptes AD :

SamAccountName
User1
User2
User3

 

#OL17 - Réactiver des comptes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Enable-Accounts.csv" | ForEach-Object { Enable-ADAccount -Identity $_.SamAccountName }

 

Exemple du contenu du fichier Enable-Accounts.csv avec les logins des comptes AD :

SamAccountName
User1
User2
User3

 

#OL18 - Créer des groupes (stockés dans un fichier csv) sur l'AD

Import-Csv -Path "C:\Temp\Add-Groups.csv" -Delimiter ";" | ForEach-Object { New-ADGroup -Name $_.GroupName -GroupScope $_.GroupScope -Description $_.GroupDescription -Path $_.GroupOU }

 

Exemple du contenu du fichier Add-Groups.csv avec les informations des groupes AD :

GroupName;GroupScope;GroupDescription;GroupOU
GroupName1;DomainLocal;GroupDescription1;"OU=Groupes,DC=lab,DC=microsoft,DC=com"
GroupName2;Global;GroupDescription2;"OU=Groupes,DC=lab,DC=microsoft,DC=com"
GroupName3;Universal;GroupDescription3;"OU=Groupes,DC=lab,DC=microsoft,DC=com"