Flash info

"Problems cannot be solved by the same level of thinking that created them."

- Albert Einstein
 
Accueil arrow Bibliothèque de scripts arrow Fichiers et disques arrow Afficher la taille disque disponible à distance (3)
Afficher la taille disque disponible à distance (3)
Écrit par Robin Lemesle   
11-01-2008

  Voici la version 3 du script permettant d'afficher la taille disque disponible à distance (Créé par Janel).

Les principales différences avec l'original sont:

- La prise d'un nom d'ordinateur en paramètre, ce qui permet d'interroger cet ordinateur. On peut donc concevoir que ce script peut être utilisé tel quel pour parcourir tout un parc d'ordinateurs et retourner la place libre sur l'ensemble des ordinateurs.
- La sortie est faite sous la forme d'objets normalisés (un sous-ensemble avec select-object de ce que retourne WMI pour Win32_LogicalDisk) dont on peut traiter les résultats à volonté en-dehors du script. Voir les usages fournis à titre d'exemple après le code lui-même...
- Chaque objet est retourné avec le nom de l'ordinateur, le nom du disque et sa taille disponible, de manière à pouvoir traiter l'information en cas de requête sur plusieurs ordinateurs.

# get-freespace.ps1
param ($computer = ".", [switch]$total)
# récupérer tous les disques logiques de l'ordinateur:
get-wmiobject -computer $computer win32_logicaldisk |
tee-object -variable disques |
                            select-object @{e={$_.systemname};n="Système"},
                            @{e={$_.name};n="Disque"},
                            @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"}

# afficher l'espace disponible total si demandé:

if ($total) {
"`nEspace Disponible Total sur $($disques[0].systemname): $([math]::round(($disques|measure-object
freespace -sum).sum/1GB,1)) Go"

Exemples d'usage pour une liste des espaces libres sur l'ensemble d'un parc:



 # récupération et affichage des espaces libres pour chaque ordinateur listé dans parc.txt:
PS> get-content parc.txt | foreach {get-freespace $_}
Système       Disque              Disponible (Go)
-------       ------              ---------------
JANEL01       C:                              2,1
JANEL01       D:                                0
MCE01         C:                              1,8
MCE01         D:                              0,6
MCE01         E:                              7,3
etc.


# Afficher quelques statistiques sur ce parc...
PS> $parc = get-content parc.txt | foreach {get-freespace $_}



# Commençons par le nombre de disques logiques par ordinateur:
PS> $parc | group système -noelement
Count Name
----- ----
    2 JANEL01
    9 MCE01
    4 MCE02



# Continuons avec la taille libre totale (en Go) pour l'ensemble du parc:
PS> ($parc | measure-object dispo* -sum).sum
38

Exemples d'usage interrogeant un seul ordinateur:


# Commençons par la machine locale:
PS> get-freespace
Système       Disque              Disponible (Go)
-------       ------              ---------------
JANEL01       C:                              2,1
JANEL01       D:                                0

# Continuons avec une machine distante:
PS> get-freespace mce01 -total
Système       Disque              Disponible (Go)
-------       ------              ---------------
MCE01         C:                              1,8
MCE01         D:                              0,6
etc.
Espace Disponible Total sur MCE01: 15,1 Go

# Terminons avec un changement de format:
PS> get-freespace mce01 | format-list
Système         : MCE01
Disque          : C:
Disponible (Go) : 1,8
Système         : MCE01
Disque          : D:
Disponible (Go) : 0,6
etc.

Dernière mise à jour : ( 11-01-2008 )
 
© 2018 PowerShell-Scripting.com