디스크 공간을 확인하는 스크립트가 1 년 반 동안 실행되었으므로 이메일이 제대로 전송되었는지 확인해야합니다.WMI를 통해 유효하지 않은 데이터 수신
오늘 나는 디스크 공간이 0GB 였다고 경고를 받았다. 나는 서버에 로그인하여 약 30gbs를 사용할 수 있었다.
공간을 검사하는 코드의 일부입니다.
[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 :
내가 왜 잘못되었거나 불완전한 데이터로 보이는가에 대한 아이디어가 있습니까? 나는 이런 것을 본적이 없으며 전에도이 문제에 부딪치지 않았습니다. 실행중인 서버에서 아무 것도 변경되지 않았습니다.
는 "GET-WMIObject에서 -ComputerName $ 컴퓨터의 Win32_LogicalDisk을"빈 VolumeName에와의 FreeSpace를 반환하기 위해 그냥 간단하게 할 수 있습니까? 이런 일이 끊임없이 발생합니까, 아니면 간헐적으로 발생합니까? 모든 서버, 일부 서버, localhost? 간헐적 인 경우 복잡한 코드를 단계별로 전개하여 디버깅, 읽기 및 유지 관리가 쉬워지고 데이터가 생길 때까지 루프/슬립하십시오. –
약간 접선이지만 서버를 재부팅하십시오. 자, 당신은 마술처럼 작동 할 수있는 합리적인 기회가 있다는 것을 알고 있습니다. 또한 출력이 변경되었습니다. 최근에 변경된 사항은 무엇입니까? 설치/제거/패치/업그레이드/설정이 변경 되었습니까? – TessellatingHeckler
Kory - 당신은 정확합니다, 그것은 빈 값을 반환했고이 서버에서만 간헐적으로 발생합니다. 나는 Get-WmiObject -ComputerName $ computer Win32_logicalDisk도 공백으로 반환 된 것처럼 여기에 문제가되는 코드를 보지 못했다. TessellatingHecklers 포인트에 관해서는, 마술처럼 그 기회가있다. 그러나 문자 그대로 서버상의 어떤 것도 변하지 않았다. 나는 서버를 재부팅 할 수는 있지만, 서버를 재부팅 할 수는 없다. 나는이 시점에서 정보를 얻는다. – JonnyBoy