Question [Résolu] Interroger des clusters

Plus d'informations
il y a 8 ans 8 mois #20603 par zaerazerazer
Réponse de zaerazerazer sur le sujet Re:Interroger des clusters
Non malheuresement :( je récupère uniquement le nom du cluster et pour le reste c'est vide !

En testant d'autres manières d'apellé l'info j'ai un message d'erreur qui me dit que :

Select-Object : La propriété « Partition » est introuvable.

Quand j'appelle comme ceci :

[code:1]
$freeSpace = ((Get-ClusterSharedVolume -Name $dataStoreName).SharedVolumeInfo | select -ExpandProperty Partition).FreeSpace
[/code:1]

Du coup le problème doit être liée à la session car je viens de tester en éxécutant le script directemment sur un hôte du cluster et la j'obtiens bien toutes les infos.<br><br>Message édité par: Tibo54, à: 6/08/15 11:16

En cours de découverte du GraalPowershell !

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

Plus d'informations
il y a 8 ans 8 mois #20604 par zaerazerazer
Réponse de zaerazerazer sur le sujet Re:Interroger des clusters
Après c'est vrai que je n'est pas expliqué le but de mon script!

J'aimerais pouvoir tout les matin m'envoyer un mail qui récapitulerais touts mes disques en cluster voir leurs espace dispo. La difficulté est que j'ai des .vhd qui sont dynamique et donc il faudrais que je calcule l'espace dispo du disque en prennant en compte la taille réel du .vhd et non la place qu'il prend quand il n'est pas remplis entièrement.

Et je 'ai pa encore trouvé la solution miracle :/

une petite idée ?

Voilà deja une première approche mais étant en PSVersion 2.0 je dois importer le module HyperV de Codeplex DL ici -&gt; pshyperv.codeplex.com/releases

[code:1]
Import-Module FailoverClusters
Import-Module \&quot;C:\Program Files\Modules\Hyperv\Hyperv.psd1\&quot;

$objs = @()

$NameClusters = Get-Cluster

foreach ($NameCluster in $NameClusters)
{

$HoteClusters = Get-ClusterNode -Cluster $NameCluster.name

foreach ($HoteCluster in $HoteClusters)
{
$HoteClusterName = $HoteCluster.name

$VMClusters = Get-VM -Server $HoteClusterName

foreach ($VMCluster in $VMClusters)
{
$VMClusternames = $VMCluster.VMElementName

foreach ($VMClustername in $VMClusternames)
{
$VMDisks = Get-VMDisk $VMClustername

foreach ($VMDisk in $VMDisks)
{
$DiskPath = $VMDisk.DiskPath

$DiskMaxSize = Get-VHDinfo $DiskPath | Select MaxInternalSize

echo \&quot;Cluster : $NameCluster | Server : $HoteClusterName | Chemin Disque : $DiskPath | TailleMax Disque : $DiskMaxSize\&quot;

}
}
}
}
}
[/code:1]

Et j'ai ce message d'erreur :

[code:1]
Get-WmiObject : Classe non valide
Au niveau de C:\Program Files\Modules\Hyperv\VM.ps1 : 73 Caractère : 26
+ Get-WmiObject &lt;&lt;&lt;&lt; -computername $Server -NameSpace $HyperVNamespace -Query $WQL | Add-Member -MemberType ALIASPROPERTY -Name \&quot;VMElementName\&quot; -Value \&quot;Elemen
tName\&quot; -PassThru
+ CategoryInfo : InvalidOperation: (:«») [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Get-VHDInfo : Impossible de valider l'argument sur le paramètre « VHDPaths ». L'argument est null ou vide. Indiquez un argument qui n'est pas null ou vide et réessayez.
Au niveau de C:\efzeefz\fzefefezf\efezfe\ScriptAnalyseDiskCluster.ps1 : 31 Caractère : 47
+ $DiskMaxSize = Get-VHDinfo &lt;&lt;&lt;&lt; $DiskPath | Select MaxInternalSize
+ CategoryInfo : InvalidData: (:«») [Get-VHDInfo], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Get-VHDInfo

Cluster : ClusterTEST | Server : hypervtest03 | Chemin Disque : | TailleMax Disque :
[/code:1]


Merci<br><br>Message édité par: Tibo54, à: 7/08/15 14:03

En cours de découverte du GraalPowershell !

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

Plus d'informations
il y a 8 ans 8 mois #20613 par zaerazerazer
Réponse de zaerazerazer sur le sujet Re:Interroger des clusters
Voilà j'ai réussis à faire ce que je voulais voici le code pour ceux que ça intérresse :

[code:1]
Import-Module FailoverClusters
Import-Module \&quot;C:\Program Files\Modules\Hyperv\Hyperv.psd1\&quot;

$objs = @()

$NameClusters = Get-Cluster

$EspaceOccupe = 0

foreach ($NameCluster in $NameClusters)
{

$csvs = Get-ClusterSharedVolume
foreach ( $csv in $csvs )
{
$csvinfos = $csv | select -Property Name -ExpandProperty SharedVolumeInfo
foreach ( $csvinfo in $csvinfos )
{
$TotalSize = $csvinfo.Partition.Size
$Name = $NameCluster

$obj = New-Object PSObject -Property @{

Name = $Name
TotalSize = $TotalSize

}
$objs += $obj
}
}

$HoteClusters = Get-ClusterNode -Cluster $NameCluster.name

foreach ($HoteCluster in $HoteClusters)
{
$HoteClusterName = $HoteCluster.name

$VMClusters = Get-VM -Server $HoteClusterName

foreach ($VMCluster in $VMClusters)
{
$VMClusternames = $VMCluster.VMElementName

foreach ($VMClustername in $VMClusternames)
{
$VMDisks = Get-VMDisk $VMClustername

foreach ($VMDisk in $VMDisks)
{
$DiskPath = $VMDisk.DiskPath

if( $DiskPath -ne $null)
{
$InfosVHD = Get-VHDinfo $DiskPath

$DiskMaxSize = $InfosVHD.MaxInternalSize

echo \&quot;Cluster : $NameCluster | Server : $HoteClusterName | Chemin Disque : $DiskPath | TailleMax Disque : $DiskMaxSize\&quot;

$EspaceOccupe += $DiskMaxSize
}


}
}
}
}
}

$EspaceLibre = $TotalSize - $EspaceOccupe

$obj = New-Object PSObject -Property @{

EspaceOccupe = $EspaceOccupe
EspaceLibre = $EspaceLibre

}

$objs += $obj

$obj | ft -auto Name,@{ Label = \&quot;TailleDuDisque(GB«»)\&quot; ; Expression = { \&quot;{0:N2}\&quot; -f ($TotalSize/1024/1024/1024) } },@{ Label = \&quot;EspaceLibre(GB«»)\&quot; ; Expression = { \&quot;{0:N2}\&quot; -f ($EspaceLibre/1024/1024/1024) } },@{ Label = \&quot;EspaceOccupe(GB«»)\&quot; ; Expression = { \&quot;{0:N2}\&quot; -f ($EspaceOccupe/1024/1024/1024) } }
[/code:1]

Et j'ai un résultat de ce type la :

TailleDuDisque(GB) EspaceLibre(GB) EspaceOccupe(GB)
----


910,00 424,99 485,00<br><br>Message édité par: Tibo54, à: 11/08/15 09:43

En cours de découverte du GraalPowershell !

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

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