スクリプトを実行してサーバーのドライブにクエリを実行し、ディスクスペースの結果を返します。スクリプトは、この質問のサーバーのテキストファイルリストを使用して実行されます。txtファイルにはサーバー名が1つしかないため、最終的にhtmlドキュメントが作成されます。
このスクリプトの3番目の例を使用すると、サーバーの正しい数のドライブが戻らないため、問題が発生します。したがって、これをテストするために、私は次のことを行いました。
テスト1。
Get-WmiObject
-ComputerName DB-server01
-Class Win32_LogicalDisk
-Filter "DriveType = 3"
結果:
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 28575797248
Size : 146056146944
VolumeName : OS
DeviceID : V:
DriveType : 3
ProviderName :
FreeSpace : 814725959680
Size : 898316103680
VolumeName : SQLData
DeviceID : W:
DriveType : 3
ProviderName :
FreeSpace : 293852868608
Size : 299436601344
VolumeName : SQLLogs
テスト2。
$computers = Get-Content "C:\Powershell\servers.txt";
write-host $computers
foreach($computer in $computers)
{
$disks = Get-WmiObject
-ComputerName $computer
-Class Win32_LogicalDisk
-Filter "DriveType = 3"
write-host $disks
}
結果
DB-server01
\ DB-server01 \ root \ cimv2:Win32_LogicalDisk.DeviceID = "C:" \ db- server01 \ root \ cimv2:Win32_LogicalDisk.DeviceID = "V:" \ db-server01 \ root \ cimv2:Win32_LogicalDisk.DeviceID = "W: 「」
テスト3。
$i = 0;
$percentWarning = 90;
$percentCritcal = 25;
$computers = Get-Content "C:\Powershell\servers.txt";
write-host $computers
foreach($computer in $computers)
{
$disks = Get-WmiObject
-ComputerName $computer
-Class Win32_LogicalDisk
-Filter "DriveType = 3"
$computer = $computer.toupper()
foreach($disk in $disks)
{
$deviceID = $disk.DeviceID;
$volName = $disk.VolumeName;
[float]$size = $disk.Size;
[float]$freespace = $disk.FreeSpace;
$percentFree = [Math]::Round(($freespace / $size) * 100, 2);
$sizeGB = [Math]::Round($size / 1073741824, 2);
$freeSpaceGB = [Math]::Round($freespace / 1073741824, 2);
$usedSpaceGB = $sizeGB - $freeSpaceGB;
$color = $whiteColor;
if($percentFree -lt $percentWarning)
{
$color = $greenColor
if($percentFree -lt $percentCritcal)
{
$color = $redColor
}
if ($percentFree -eq "NaN")
{
$PercentFree = "N/A"
$Color = $whiteColor
}
Add-Content $diskReport $dataRow;
Write-Host -ForegroundColor Green
"$computer $deviceID percentage free space = $percentFree";
$i++
}
}
}
結果:
DB-Server01 C: percentage free space = 19.56
ルックテスト3を実行すると、ドライブcのみが返され、V&Wが失われます。
???????