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 :
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 :
Lors d’un exportation d’informations, il est parfois intéressant de visualiser la progression du fichier.
Utile également pour contrôler en temps réel un fichier de log d’un traitement long.
Un petit outil portable permet de le faire.
Tail for Win32 est très simple et léger à utiliser.
Télécharger
Télécharger la version portable.
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Voici une ligne de commande utile pour exporter la liste des comptes d’ordinateurs d’une OU en vu de faire un peu de ménage.
Get-QADComputer -IncludeAllProperties -SearchRoot domain.local\Paris -Sizelimit 0 | Select-Object cn,OSName,OSServicePack,pwdlastset,ParentContainer | Export-Csv -Path Paris_Computers_List.csv |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Ce script permet d’exporter dans un fichier la liste des ordinateurs et serveurs d’une OU avec le login de l’utilisateur connecté et la langue du système d’exploitation.
Cela ne fonctionne que pour les ordinateurs et serveurs en ligne.
$fileres = ".\Export\FI00_Paris_Comp_Lang.csv"
$expfile = New-Item -ItemType file -Path $fileres -Force
Add-Content -Path $fileres -Value "Computer,LoggedUser,Language"
Get-QADComputer -SearchRoot "domain.local/FI00_Paris"| ForEach-Object {
if ( Test-Connection $_.name -count 1 -quiet) {
$computer = $_.name
$lang = (Get-WmiObject Win32_OperatingSystem -ComputerName $computer -ErrorAction continue ).oslanguage
$switch = switch ($lang) `
{
1033 {"English"};
1036 {"French"};
default {"Unknown"}
}
$loginfo = Get-WmiObject -Computer $Computer -Class Win32_ComputerSystem
$present = Select-String -Path $fileres -Pattern $computer
Add-Content -Path $fileres -Value "$($computer),$($loginfo.UserName),$($switch)"
}
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :

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)" |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Ce Script automatise l’exportation d’une boite aux lettres dans un fichier PST.
Pour rappel, il y a des pré-requis pour faire des exportations de boites aux lettres.
1- OS 32bits (XP ou Windows Server) (Pas testé sur Seven)
2- Client Outlook. (Outlook 2003 SP2 Minimum)
3- Exchange 2007 Management Tools
$mbal = Read-Host "Please enter the mailbox"
$musr = [Environment]::UserName
Add-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr
$pst = "I:\PSTDATA\" + $mbal +".pst"
Export-Mailbox -Identity $mbal -PSTFolderPath $pst -Confirm:$false
Remove-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr -Confirm:$false |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Exporter toutes les boites aux lettres où a accès un utilisateur.
Get-Mailbox -Server CCR002 -Resultsize Unlimited | where-object { $_.database -match "SCO" } | Get-MailboxPermission | Where-Object { $_.AccessRights -eq "FullAccess" -and $_.IsInherited -match "false" -and $_.user -match "bluteau" } | Select-Object Identity,User| Export-Csv -Path rightsonmb.csv |
Ensuite supprimer ces délégations.
Import-Csv -Path .\rightsonmb.csv | foreach { Remove-MailboxPermission -Identity $_.identity -AccessRights FullAccess -User $_.user } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Cette commande permet d’exporter la liste des délégations en place sur plusieurs Databases d’un serveur.
Get-Mailbox -Server CCR001 -Resultsize Unlimited | where-object { $_.database -match "DB_Paris" } | Get-MailboxPermission | Where-Object { $_.AccessRights -eq "FullAccess" -and $_.IsInherited -match "false"} | Select-Object Identity,User| Export-Csv -Path rightsonparismb.csv |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :

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] |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Commentaires récents