J'essaie d'apprendre PowerShell. J'ai écrit un petit script pour surveiller mes serveurs Exchange. Je ne comprends pas pourquoi ce travail en ligne sur la machine locale sans problèmeWhere-Object fonctionne localement mais pas à distance
Get-WmiObject -Class win32_volume -Filter 'drivetype = 3' | Where-Object 'Label' -ne "System Reserved" | ft SystemName, DriveLetter, Label, @{LABEL='FreeSpaceGB'; EXPRESSION={"{0:N0}" -f ($_.freespace/1GB)}}
mais si je mets le même code dans la commande Invoke-je reçois cette erreur.
Invoke-Command -ComputerName $server -credential $c -ScriptBlock {
Get-WmiObject -Class win32_volume -Filter 'drivetype = 3' | Where-Object 'Label' -ne "System Reserved" | ft SystemName, DriveLetter, Label, @{LABEL='FreeSpaceGB'; EXPRESSION={"{0:N0}" -f ($_.freespace/1GB)}}
}
Impossible de lier l'argument au paramètre 'FilterScript' parce qu'il est nul. + CategoryInfo: invalidData: (:) [Where-Object], ParameterBindingValidationException + FullyQualifiedErrorId: ParameterArgumentValidationErrorNullNotAllowed, Microsoft.PowerShell.Commands.WhereObject Commande
J'ai essayé tout ce que je peux penser sans chance. Je vérifie même avec gm et l'étiquette existe ... Un conseil ..?
Je recommande vivement les versions les plus récentes de PowerShell si vous le pouvez. BIG si, bien que certaines versions ne sont pas compatibles avec certaines versions d'Exchange. –