公司裡目前沒有server的監控程式,所以需要手動的去監控每個server的空間還夠不夠,但server實在太多了,所以才想用以下簡單的script來把所有server的硬碟資訊彙整到excel。
PowerShell script如下:
gwmi win32_logicalDisk -filter "drivetype = 3" -ComputerName server1, server2, pc1, pc2 |
Select SystemName, deviceid,
@{Name="Free%";Expression={[math]::Round($_.Freespace/$_.Size,2)}},
@{Name="FreeGB";Expression={[math]::Round($_.Freespace/1GB,2)}},
@{Name="SizeGB";Expression={[math]::Round($_.Size/1GB,2)}} |
Sort Free% |
Export-Csv -Path C:\DriveSpace\DrivesSpace-$((Get-Date).ToString('dd-MMM-yyyy_Hmmss')).csv
- 把上列script貼到筆記本,更改server名字,另存成 .ps1檔,就可以執行。
- 結果會匯到C:\DriveSpace (自行更改路徑)存成.csvˇ檔案可以用excel開啟。
- 輸出的freespace及size是以GB為單位。
- 由於要使用Windows Task Scheduler自動執行,所以檔名有加上執行日期及時間,日期格式請自行更換。
用.bat來執行.ps1
script如下:
Powershell.exe -ExecutionPolicy Bypass -File "DriveSpace.ps1"
- 把上列script貼到筆記本,更改.ps1檔名字,另存成 .bat檔,就可以執行。



