2016-11-02 6 views
0

私はスクリプトの実行時間を半年ほど短縮し、ディスク容量をチェックしました。WMI経由で無効なデータを受信

今日、私はそのディスク容量が0GBであったという警告を受けました。私はサーバにログインし、約30GBの空き容量がありました。

スペースをチェックするコードの一部です。

[decimal]$thresholdspace = 5 
$tableFragment= Get-WMIObject -ComputerName $computer Win32_LogicalDisk ` 
| select __SERVER, DriveType, VolumeName, Name, @{n='Size (Gb)' ;e={"{0:n2}" -f ($_.size/1gb)}},@{n='FreeSpace (Gb)';e={"{0:n2}" -f ($_.freespace/1gb)}}, @{n='PercentFree';e={"{0:n2}" -f ($_.freespace/$_.size*100)}} ` 
| Where-Object {$_.DriveType -eq 3 -and [decimal]$_.PercentFree -lt [decimal]$thresholdspace} 

私はISEセッションを開いて次のことを行いました。

$computer = 'Server_01' 

Get-WMIObject -ComputerName $computer Win32_LogicalDisk | select __SERVER, DriveType, VolumeName, Name,FreeSpace 

、それはで応答:だから私は、その後のスペースを取得している私のコードの一部を実行し、それは次のように返さ

__SERVER : Server_01 
DriveType : 2 
VolumeName : 
Name  : A: 
FreeSpace : 

__SERVER : Server_01 
DriveType : 3 
VolumeName : 
Name  : C: 
FreeSpace : 31372767232 

__SERVER : Server_01 
DriveType : 5 
VolumeName : 
Name  : E: 
FreeSpace : 

__SERVER  : Server_01 
DriveType  : 3 
VolumeName  : 
Name   : C: 
Size (Gb)  : 0.00 
FreeSpace (Gb) : 0.00 
PercentFree : 

だから私は走りました単純なWMIクエリであり、データなしで応答しました。

__SERVER : Server_01 
DriveType : 2 
VolumeName : 
Name  : A: 
FreeSpace : 

__SERVER : Server_01 
DriveType : 3 
VolumeName : 
Name  : C: 
FreeSpace : 

__SERVER : Server_01 
DriveType : 5 
VolumeName : 
Name  : E: 
FreeSpace : 

なぜ私が無効になっているのか、または不完全なデータが表示されているのかについての考えはありますか?私はこのようなことは一度も見たことがなく、今までこの問題に遭遇していませんでした。実行中のどちらのサーバーでも何も変更されていません。

+0

は「ゲット-WmiObjectコマンド-ComputerName $コンピュータのWin32_LogicalDiskは」空白のボリューム名と空き領域を返していることだけを単純化することができますか?A:あなたが実行するとどうなり

これは絶えず起こるのか、間欠的に起こるのでしょうか?すべてのサーバー、いくつかのサーバー、localhost?断続的な場合は、複雑なコードをステップに展開し、デバッグ、読み込み、および保守を容易にし、データがあるまでループ/スリープします。 –

+0

やや接線ですが、サーバーを再起動してください。さあ、あなたはそれが魔法の後に働く合理的なチャンスがあることを知っている。また、出力が変更されました - 最近何が変わったのですか?インストール/アンインストール/パッチ適用/アップグレード/設定変更? – TessellatingHeckler

+0

Kory - あなたは正しいです、それは空白の値を返していました、断続的にこの1つのサーバー上でのみ起こっています。 Get-WmiObject -ComputerName $ computer Win32_logicalDiskもブランクに戻ってしまったので、ここでコードが問題になることはありません。 TessellatingHecklersに関しては、魔法のようにチャンスがありますが、文字通りサーバー上の何も変わっていません。サーバーを再起動しても、サーバーを再起動できません。この時点で情報を取得しています。 – JonnyBoy

答えて

0

申し訳ありませんが、コメントするには50の評判が必要です。答えとしてコメントを追加する必要があります。

get-ciminstance -computername $computer -classname Win32_Logicaldisk 
+0

これを試してみる意味は、残念ながら今働いています。 – JonnyBoy

関連する問題