Question
Afficher la taille disque disponible à distance
- Usul
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 16 ans 8 mois #4881
par Usul
Afficher la taille disque disponible à distance a été créé par Usul
Bonjour,
apres pas mal de recherches je ne trouve toujourspas la solution qui doit etre simple !
Alors voila je suis tombé sur un script qui fonctionne bien
[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]
Ensuite et mon probleme vient de la je veux
[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 $_}[/code:1]
et c'est la que ça bloque .... je ne comprend pas !
que je mette le texte a la suite dans mon .ps1 ou que j essaie de l executer à part (et meme en mettant le nom complet pour le chemin, cela ne fonctionne pas
si qqn pouvais expliquer à un noob
Merci beaucoup
apres pas mal de recherches je ne trouve toujourspas la solution qui doit etre simple !
Alors voila je suis tombé sur un script qui fonctionne bien
[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]
Ensuite et mon probleme vient de la je veux
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 $_}[/code:1]
et c'est la que ça bloque .... je ne comprend pas !
que je mette le texte a la suite dans mon .ps1 ou que j essaie de l executer à part (et meme en mettant le nom complet pour le chemin, cela ne fonctionne pas
si qqn pouvais expliquer à un noob
Merci beaucoup
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 8 mois #4882
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Afficher la taille disque disponible à distance
Salut,
UsulMuaDib écrit:
Quel est le contenu du fichier parc.txt ?
En passant, il n'y a pas de gestion d'erreur dans ton script, une machine peut ne pas répondre, etc
UsulMuaDib écrit:
Peux-tu préciser le problème exactement ? Un message d'erreur par exemple.cela ne fonctionne pas
Quel est le contenu du fichier parc.txt ?
En passant, il n'y a pas de gestion d'erreur dans ton script, une machine peut ne pas répondre, etc
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- dimeric
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 16 ans 8 mois #4910
par dimeric
Réponse de dimeric sur le sujet Re:Afficher la taille disque disponible à distance
bonjour
le script de janel (je crois) fonctionne bien chez moi.
il me reste a le configurer et tester pour 6 serveurs echange ...en cluster...
par contre je cherche a envoyer les resultats vers un fichier csv (voir xls) ey y faire figure le nom serveur , la lettre de disque et la taille restante.
J ai essaye le out-file mais echec pour le moment....
A suivre
le script de janel (je crois) fonctionne bien chez moi.
il me reste a le configurer et tester pour 6 serveurs echange ...en cluster...
par contre je cherche a envoyer les resultats vers un fichier csv (voir xls) ey y faire figure le nom serveur , la lettre de disque et la taille restante.
J ai essaye le out-file mais echec pour le moment....
A suivre
Connexion ou Créer un compte pour participer à la conversation.
- yvan
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 16 ans 7 mois #4974
par yvan
Réponse de yvan sur le sujet Re:Afficher la taille disque disponible à distance
Bonjour,
Suite au lancement du script je rencontre un problème
Quand je le lance en local pas de problème mais des que je mets en argument le nom du serveur, il m'affiche un message d'erreur ( voir P.J) : Get WmiObject: Accès refusé.
Je pense que je devrais le lancer avec les droits admin mais je ne connais pas la commande.
Merci de votre aide
Suite au lancement du script je rencontre un problème
Quand je le lance en local pas de problème mais des que je mets en argument le nom du serveur, il m'affiche un message d'erreur ( voir P.J) : Get WmiObject: Accès refusé.
Je pense que je devrais le lancer avec les droits admin mais je ne connais pas la commande.
Merci de votre aide
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- maycry
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 119
- Remerciements reçus 0
il y a 16 ans 7 mois #4975
par maycry
Réponse de maycry sur le sujet Re:Afficher la taille disque disponible à distance
Pour ton info, accés refusé, il faut que ton script soit exécutant avec les droits suffisants.
$Cred = get-Credential \"DOMAIN\admin\"
un clic droit sur propriété avec \"exécuter en tant que\"
Tiens moi par exemple sur chaque serveur, tous les matins je recoit une alerte mail qui m'indique l'état actuel de mes disques.
Le server Exchange va checker tous mes DD sur tous mes servers.
Dans ce cas ci-dessous, il s'agit d'un server EDGE en groupe de travail
Script powershell pour récupérer les infos des HDD
[code:1]#************************************Serveur EDGE **************************************
$computer = \".\"
# récupérer tous les disques logiques de l'ordinateur:
get-wmiobject -computer $computer win32_logicaldisk | where {$_.drivetype -eq 3} |
tee-object -variable disques |
select-object @{e={$_.systemname};n=\"Nom du Serveur\"},
@{e={$_.name};n=\"Disque Dur\"},
@{e={[math]::round($_.freespace/1GB,1)};n=\"Disponible (Go)\"},
@{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n=\"% restant\"} >> E:\EdgeMailscript\HardDisk_Space.log
# afficher l'espace disponible total si demandé:
##i11:56 AM 10/10/2007f ($total) {
\"`nEspace Disponible Total sur $($disques[0].systemname): $([math]::round(($disques|measure-object freespace -sum).sum/1GB,1)) Go\" >> E:\EdgeMailscript\HardDisk_Space.log
#}[/code:1]
Script VBS qui lit le contenu du fichier.log et envoi par mail ( oui tu peux faire ca depuis powershell mais mon script date)
[code:1]
' ##################### Scriipt #####################
' Produit = Script d'envoi de log par mail /
' Auteur = Christian Bousquet
' © 5/11/2007
dim ObjFSO
Const ForReading = 1
set ObjFso = CreateObject (\"Scripting.FilesystemObject\"«»)
set ObjTextFile = objFSO.OpentextFile _
(\"E:\EdgeMailscript\Status_HDD.log\", ForReading)
LogFile = ObjtextFile.ReadAll
ObjTextfile.close
'***************************************************************************************
' Création de la Section d'envoi de mail
Set ObjMessage = CreateObject (\"CDO.Message\"«»)
objmessage.subject = \"!!EDGE_SERVER Hard_Disk_Drive Windows-Servers!!\"
objmessage.From = \"StatusDisk@doamin.com\"
objmessage.To = \"quituveux@domain.com\"
objmessage.TextBody = \" \"&Logfile&\" \"
'==Section des paramètres WINDOWS template pour l'utilisation de l'object CDO.Message
objMessage.Configuration.Fields.Item _
(\"schemas.microsoft.com/cdo/configuration/sendusing\"«») = 2
'nom du serveur smtp
objMessage.Configuration.Fields.Item _
(\"schemas.microsoft.com/cdo/configuration/smtpserver\"«») = \"172.16.1.244\"
'port du server
objMessage.Configuration.Fields.Item _
(\"schemas.microsoft.com/cdo/configuration/...serverport\"«») = 25
objMessage.Configuration.Fields.Update
'==Fin des paramètres / commande d'envoi du mail==
objMessage.Send
' supression du fichier LOG afin q'u'il ne se remplisse continuellement
Set objFSO = CreateObject(\"Scripting.FileSystemObject\"«»)
objFSO.DeleteFile(\"E:\Edgemailscript\HardDisk_Space.log\"«»)
objFSO.DeleteFile (\"E:\Edgemailscript\Status_HDD.log\"«»)[/code:1]Un<br><br>Message édité par: chris, à: 24/07/09 12:55
$Cred = get-Credential \"DOMAIN\admin\"
Tiens moi par exemple sur chaque serveur, tous les matins je recoit une alerte mail qui m'indique l'état actuel de mes disques.
Le server Exchange va checker tous mes DD sur tous mes servers.
Dans ce cas ci-dessous, il s'agit d'un server EDGE en groupe de travail
Script powershell pour récupérer les infos des HDD
[code:1]#************************************Serveur EDGE **************************************
$computer = \".\"
# récupérer tous les disques logiques de l'ordinateur:
get-wmiobject -computer $computer win32_logicaldisk | where {$_.drivetype -eq 3} |
tee-object -variable disques |
select-object @{e={$_.systemname};n=\"Nom du Serveur\"},
@{e={$_.name};n=\"Disque Dur\"},
@{e={[math]::round($_.freespace/1GB,1)};n=\"Disponible (Go)\"},
@{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n=\"% restant\"} >> E:\EdgeMailscript\HardDisk_Space.log
# afficher l'espace disponible total si demandé:
##i11:56 AM 10/10/2007f ($total) {
\"`nEspace Disponible Total sur $($disques[0].systemname): $([math]::round(($disques|measure-object freespace -sum).sum/1GB,1)) Go\" >> E:\EdgeMailscript\HardDisk_Space.log
#}[/code:1]
Script VBS qui lit le contenu du fichier.log et envoi par mail ( oui tu peux faire ca depuis powershell mais mon script date)
[code:1]
' ##################### Scriipt #####################
' Produit = Script d'envoi de log par mail /
' Auteur = Christian Bousquet
' © 5/11/2007
dim ObjFSO
Const ForReading = 1
set ObjFso = CreateObject (\"Scripting.FilesystemObject\"«»)
set ObjTextFile = objFSO.OpentextFile _
(\"E:\EdgeMailscript\Status_HDD.log\", ForReading)
LogFile = ObjtextFile.ReadAll
ObjTextfile.close
'***************************************************************************************
' Création de la Section d'envoi de mail
Set ObjMessage = CreateObject (\"CDO.Message\"«»)
objmessage.subject = \"!!EDGE_SERVER Hard_Disk_Drive Windows-Servers!!\"
objmessage.From = \"StatusDisk@doamin.com\"
objmessage.To = \"quituveux@domain.com\"
objmessage.TextBody = \" \"&Logfile&\" \"
'==Section des paramètres WINDOWS template pour l'utilisation de l'object CDO.Message
objMessage.Configuration.Fields.Item _
(\"schemas.microsoft.com/cdo/configuration/sendusing\"«») = 2
'nom du serveur smtp
objMessage.Configuration.Fields.Item _
(\"schemas.microsoft.com/cdo/configuration/smtpserver\"«») = \"172.16.1.244\"
'port du server
objMessage.Configuration.Fields.Item _
(\"schemas.microsoft.com/cdo/configuration/...serverport\"«») = 25
objMessage.Configuration.Fields.Update
'==Fin des paramètres / commande d'envoi du mail==
objMessage.Send
' supression du fichier LOG afin q'u'il ne se remplisse continuellement
Set objFSO = CreateObject(\"Scripting.FileSystemObject\"«»)
objFSO.DeleteFile(\"E:\Edgemailscript\HardDisk_Space.log\"«»)
objFSO.DeleteFile (\"E:\Edgemailscript\Status_HDD.log\"«»)[/code:1]Un<br><br>Message édité par: chris, à: 24/07/09 12:55
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.104 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Afficher la taille disque disponible à distance