Question Afficher la taille disque disponible à distance
- Jacques Barathon
- Auteur du sujet
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 16 ans 2 mois #599
par Jacques Barathon
Afficher la taille disque disponible à distance a été créé par Jacques Barathon
Alors... Ce script est inspiré de celui qu'Arnaud avait posté dans la bibliothèque de scripts.
Principales différences avec l'original:
* Je prends 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.
* Je retourne avec chaque objet 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.
* 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...
[code:1]# 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\"
}[/code:1]
Exemples d'usage interrogeant un seul ordinateur:
[code:1]# 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.[/code:1]
Exemples d'usage pour une liste des espaces libres sur l'ensemble d'un parc:
[code:1]# 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[/code:1]
En résumé, plutôt qu'un script qui peut tout faire et tout afficher selon un format imposé, je préfère travailler à une solution plus ouverte et plus facilement recombinable avec d'autres commandes et scripts PowerShell.
J'ai toujours en chantier un billet sur ce sujet pour mon blog, où je décrirai ce que j'estime être les bonnes pratiques pour une bonne citoyenneté des scripts et fonctions que l'on écrit sous PowerShell. Si je trouve le temps de le faire, je tiendrai ce forum informé.
En espérant que tout cela vous sera utile,
Janel
Principales différences avec l'original:
* Je prends 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.
* Je retourne avec chaque objet 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.
* 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...
[code:1]# 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\"
}[/code:1]
Exemples d'usage interrogeant un seul ordinateur:
[code:1]# 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.[/code:1]
Exemples d'usage pour une liste des espaces libres sur l'ensemble d'un parc:
[code:1]# 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[/code:1]
En résumé, plutôt qu'un script qui peut tout faire et tout afficher selon un format imposé, je préfère travailler à une solution plus ouverte et plus facilement recombinable avec d'autres commandes et scripts PowerShell.
J'ai toujours en chantier un billet sur ce sujet pour mon blog, où je décrirai ce que j'estime être les bonnes pratiques pour une bonne citoyenneté des scripts et fonctions que l'on écrit sous PowerShell. Si je trouve le temps de le faire, je tiendrai ce forum informé.
En espérant que tout cela vous sera utile,
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Auteur du sujet
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 16 ans 2 mois #600
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Afficher la taille disque disponible à distance
J'oubliais de préciser: vous avez mon accord pour publier ce script dans la bibliothèque de scripts si vous le jugez utile.
Janel
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 2 mois #601
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Afficher la taille disque disponible à distance
Merci Janel pour ce script de qualité

Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- clair
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 5 ans 9 mois #24679
par clair
Réponse de clair sur le sujet Re:Afficher la taille disque disponible à distance
Bonjour , je ne comprend pas ce que veut dire le point entre guillemet ainsi que le \"[switch]\" , une âme charitable pour m'expliquer ?(Je débute...)
Cordialement,
Cordialement,
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 5 ans 9 mois #24680
par Philippe
Réponse de Philippe sur le sujet Re:Afficher la taille disque disponible à distance
salut cyril101
cyril01 écrit:
c'est en rapport avec les paramètres donné quand tu lance le script
si aucun nom d'ordinateur n'est donné, quand tu lance le script, il met par défaut le point dans $computer
par contre le point dans $computer indique que dans l'instruction suivante il travail avec l'ordinateur local ou s'exécute du code :
[code:1]get-wmiobject -computer $computer win32_logicaldisk[/code:1]
pour le \"[switch]\" dans la ligne param, cela indique une variable switch !
c'est à dire que si tu indique -total dans la ligne qui appel le script, la varaible contiendra $true et les instruction du if seront exécuté
deux exemple :
get-freespace.ps1 -total
affiche l'espace libre des disques locaux plus une ligne avec le total de l'espace libre
get-freespace.ps1 mon_ordi
affiche l'espace libre des disques de l'ordinateur \"mon_ordi\" et c'est tout
cyril01 écrit:
[code:1]param ($computer = \".\", [switch]$total)[/code:1]Bonjour , je ne comprend pas ce que veut dire le point entre guillemet ainsi que le \"[switch]\" , une âme charitable pour m'expliquer ?(Je débute...)
c'est en rapport avec les paramètres donné quand tu lance le script
si aucun nom d'ordinateur n'est donné, quand tu lance le script, il met par défaut le point dans $computer
par contre le point dans $computer indique que dans l'instruction suivante il travail avec l'ordinateur local ou s'exécute du code :
[code:1]get-wmiobject -computer $computer win32_logicaldisk[/code:1]
pour le \"[switch]\" dans la ligne param, cela indique une variable switch !
c'est à dire que si tu indique -total dans la ligne qui appel le script, la varaible contiendra $true et les instruction du if seront exécuté
deux exemple :
get-freespace.ps1 -total
affiche l'espace libre des disques locaux plus une ligne avec le total de l'espace libre
xxxx est le nom de l'ordinateur localSystème Disque Disponible (Go)
xxxx C: 1,8
xxxx D: 0,6
Espace Disponible Total sur xxxx: 15,1 Go
get-freespace.ps1 mon_ordi
affiche l'espace libre des disques de l'ordinateur \"mon_ordi\" et c'est tout
Système Disque Disponible (Go)
mon_ordi C: 1,8
mon_ordi D: 0,6
Connexion ou Créer un compte pour participer à la conversation.
- clair
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 5 ans 8 mois #24870
par clair
Réponse de clair sur le sujet Re:Afficher la taille disque disponible à distance
Bonjour je ne trouve oas comment faire si je veux lister seulement 1 disque que je défini suivant la machine?
Cordialement
Cordialement
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- Afficher la taille disque disponible à distance