TUTOS.EU

Powershell - Exporter et filtrer les quotas

Exporter et filtrer les quotas d'un serveur Windows 2008

Clear-Host

$VBShellObj = new-object -comobject wscript.shell

[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') 
$NomEspaceRecherche = [Microsoft.VisualBasic.Interaction]::InputBox("Entrez une partie du nom du quota recherché", "Quota recerche", "")
$NomEspaceRecherche.ToLower()

$fsrmremote = New-Object -com Fsrm.FsrmQuotaManager
#$fsrmremote | GM
$colItems = $fsrmremote.EnumQuotas("")
#$colItems | GM

write-host "Recherche de $NomEspaceRecherche"

$NombreQuotasTrouves = 0
foreach ($objItem in $colItems) { 
	#write-host "Path: " $objItem.Path
	$QuotaPath = $objItem.Path
	$QuotaPath = $QuotaPath.ToLower()
	$Trouve = $QuotaPath.contains($NomEspaceRecherche)
	
	if ($Trouve -eq $TRUE){
		$NombreQuotasTrouves++

		write-host "Path: " $objItem.Path
	}
} 
Lien vers le fichier : cliquez ici Copier le code

Version avec écriture dans un fichier façon csv

Clear-Host
function Get-ScriptDirectory
{
	$Invocation = (Get-Variable MyInvocation -Scope 1).Value
	$ScriptFolderPath = Split-Path $Invocation.MyCommand.Path
	return $ScriptFolderPath
}

$MyLine = [string]
$NomFichierACreer = [string]

$VBShellObj = new-object -comobject wscript.shell

[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') 
$NomEspaceRecherche = [Microsoft.VisualBasic.Interaction]::InputBox("Entrez une partie du nom du quota recherché", "Quota recerche", "")
$NomEspaceRecherche.ToLower()

$fsrmremote = New-Object -com Fsrm.FsrmQuotaManager
#$fsrmremote | GM
$colItems = $fsrmremote.EnumQuotas("")
#$colItems | GM

$NomFichierACreer = "ExportQuotasFiltres.txt"

$EmplacementFichier = Get-ScriptDirectory
$EmplacementFichier = "$EmplacementFichier\$NomFichierACreer"

#Création du fichier vierge
$MonFichier = New-Item -type file $EmplacementFichier -Force

write-host "Recherche de $NomEspaceRecherche"

$NombreQuotasTrouves = 0
foreach ($objItem in $colItems) { 
	#write-host "Path: " $objItem.Path
	$QuotaPath = $objItem.Path
	$QuotaPath = $QuotaPath.ToLower()
	$QuotaLimit = $objItem.QuotaLimit
	$QuotaLimit = $QuotaLimit / 1024 /1024
	$Trouve = $QuotaPath.contains($NomEspaceRecherche)
	
	if ($Trouve -eq $TRUE){
		$NombreQuotasTrouves++

		write-host "Path: " $objItem.Path
		
		$MyLine = "$QuotaPath;$QuotaLimit"
		add-content $MonFichier $MyLine
	
#		$RetourYesNo = $VBShellObj.popup("Editer $QuotaPath ? ",0,"Editer ce quota ?",4)
#
#		#Si on est ok pour editer ce quota
#		if ($RetourYesNo -eq 6){
#			write-host "QuotaUsed : " ($objItem.QuotaUsed/1024/1024) "Mb"
#			write-host "QuotaLimit: " ($objItem.QuotaLimit /1024/1024) "Mb"
#		
#		}
	}
} 


Lien vers le fichier : cliquez ici Copier le code

2