Question Afficher la taille disque disponible à distance

Plus d'informations
il y a 15 ans 3 mois #8876 par Matthew BETTON
Bonjour,

Une possibilité (en fonction de ce qui a déjà été écrit par janel) :

[code:1]
$PCList = Get-Content .\pc.txt
$AllResults = $null
$AllResults = @()
foreach($PC in $PCList){
$Results = get-wmiobject -comp $PC win32_logicaldisk -filter \"deviceid='U:'\" | select __server, deviceid, volumename, size, freespace
$AllResults += $Results
}
$AllResults | export-csv -noType -useCulture .\EspaceDisque.csv[/code:1]

A chaque fois que tu exécuteras ces lignes, le fichier EspaceDisque.csv sera écrasé par les nouvelles informations...

@ +

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8881 par roisse
Super merci beaucoup, ça marche nickel !!!

juste une petite question bonus, est ce qu'on peut filtrer 2 lecteurs ? ex: F: et G: ??
avec :
win32_logicaldisk -filter \"deviceid='F:'\" -filter \"deviceid='G:'\"
ça marcherai ?

j'ai aussi des PC du parc qui ne sont pas redémarré correctement, ce qui me donne un message d'erreur du type:
Export-Csv : Impossible de lier l'argument au paramètre « InputObject », car il a la valeur Null.
Au niveau de C:\Script\test-test.ps1 : 8 Caractère : 25
+ $AllResults | export-csv <<<< -noType -useCulture .\EspaceDisque.csv
+ CategoryInfo : InvalidData: (:) [Export-Csv], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ExportCsvCommand
ce n'est pas très méchant mais je pense que ça rallenti l'execution du script y'a t'il moyen de lui dire \" si t'as pas de réponse au bout de 2 secondes alors passe ton chemin\"
je suis tête gourmand là lol

en tout cas merci bien les gas !!! ça m'aide vraiment !!! ce petit script !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8884 par Jacques Barathon
Pour filtrer plusieurs disques, je ne crois pas que -filter s'applique. Dans ce cas-là tu peux directement passer une requête WMI à ta commande :

[code:1]
gwmi -comp $pc -query \"select * from win32_logicaldisk where deviceid='F:' or deviceid='G:'\"
[/code:1]

Pour tester la présence en ligne d'un PC, tu peux commencer par faire un \"test-connection\" (équivalent PS du ping) et ne faire le \"get-wmiobject\" que si le test a marché.

En résumé, et en simplifiant le script de Matthew, ça donne ceci :

[code:1]
get-content pc.txt | where {test-connection $_ -quiet -count 2} | foreach {
gwmi -comp $_ -query \"select * from win32_logicaldisk where deviceid='F:' or deviceid='G:'\"
} | select __server, deviceid, volumename, size, freespace | export-csv -noType -useCulture EspaceDisque.csv
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8888 par Matthew BETTON
Yes, il est clair que ça devient beaucoup plus sexy en une ligne ;)

\"One Line At a Time\"

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8889 par Jacques Barathon
Sexy je sais pas, mais j'aime bien. :P

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 3 mois #8890 par Matthew BETTON
Tu as bien raison ! PowerShell le permet et je ne vois pourquoi on s'en priverait :laugh:

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.044 secondes
Propulsé par Kunena