ตรวจสอบพื้นที่ว่างในดิสก์บน Windows ด้วยสคริปต์ PowerShell
เราต้องการตรวจสอบพื้นที่ว่างในดิสก์บนระบบ Windows ที่เข้าร่วมโดเมนทั้งหมด นี่คือระบบ Windows Server และ Windows 10 วิธีที่ยอดเยี่ยมในการดึงพื้นที่ดิสก์คือการใช้ PowerShell ในบทความนี้ เราจะตรวจสอบพื้นที่ว่างในดิสก์จำนวนมากด้วย PowerShell สำหรับ Windows Server, Windows 10 และ Windows 11
เตรียมตรวจสอบพื้นที่ว่างในดิสก์สคริปต์ PowerShell
ดาวน์โหลดสคริปต์ Get-DiskSpaceReport.ps1 หรือคัดลอกและวางโค้ดด้านล่างใน Notepad ตั้งชื่อให้ว่า Get-DiskSpaceReport.ps1 และวางไว้ในโฟลเดอร์ C:\scripts สร้างโฟลเดอร์ สคริปต์ หากคุณยังไม่มี
Set-ExecutionPolicy Unrestricted -Force
Import-Module ActiveDirectory
# Delete reports older than 60 days
$OldReports = (Get-Date).AddDays(-60)
# Location for disk reports
Get-ChildItem "C:\Temp\DiskSpaceReport\*.*" |
Where-Object { $_.LastWriteTime -le $OldReports } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# Create variable for log date
$LogDate = get-date -f yyyyMMddhhmm
# Get all systems
$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "*Windows Server*" } |
Where-Object { $_.Enabled -eq $true } | Select-Object Name, DNSHostName | Sort-Object Name
# Loop through each system
$DiskReport = ForEach ($System in $Systems) {
Get-WmiObject win32_logicaldisk `
-ComputerName $System.DNSHostName -Filter "Drivetype=3" `
-ErrorAction SilentlyContinue
}
# Create disk report
$DiskReport | Select-Object `
@{Label = "HostName"; Expression = { $_.SystemName } },
@{Label = "DriveLetter"; Expression = { $_.DeviceID } },
@{Label = "DriveName"; Expression = { $_.VolumeName } },
@{Label = "Total Capacity (GB)"; Expression = { "{0:N1}" -f ( $_.Size / 1gb) } },
@{Label = "Free Space (GB)"; Expression = { "{0:N1}" -f ( $_.Freespace / 1gb ) } },
@{Label = 'Free Space (%)'; Expression = { "{0:P0}" -f ($_.Freespace / $_.Size) } } |
# Export report to CSV file
Export-Csv -Path "C:\Temp\DiskSpaceReport\DiskReport_$logDate.csv" -NoTypeInformation -Delimiter ";"มันจะมีลักษณะเช่นนี้
สร้างโฟลเดอร์ที่สองชื่อ Temp และวางไว้ในไดรฟ์ (C:) หลังจากนั้น ให้สร้างโฟลเดอร์ DiskSpaceReport และวางไว้ในโฟลเดอร์ชั่วคราว นั่นคือที่ที่รายงานจะบันทึกหลังจากที่คุณเรียกใช้สคริปต์
คุณต้องการเปลี่ยนเส้นทางของรายงานหรือไม่ อย่าลืมเปลี่ยนเส้นทางในสคริปต์ PS ที่บรรทัด 8 และ 36
ก่อนที่คุณเรียกใช้สคริปต์ Get-DiskSpaceReport PowerShell
ก่อนที่คุณจะรันสคริปต์ โปรดใส่ใจกับ:
ระบบจะต้องออนไลน์
เรียกใช้บนคอมพิวเตอร์ที่เข้าร่วมโดเมน
สิทธิ์ของผู้ดูแลระบบ
พื้นที่ว่างในดิสก์ Windows Server
เปลี่ยนเส้นทางไปยังโฟลเดอร์สคริปต์ เรียกใช้สคริปต์ PowerShell Get-DiskSpaceReport.ps1 มันจะดึงข้อมูล เซิร์ฟเวอร์ Windows ทั้งหมดในโดเมนและส่งออกดิสก์ไดรฟ์เป็นไฟล์ CSV
PS C:\> cd C:\scripts
PS C:\scripts> .\Get-DiskSpaceReport.ps1เปิดไฟล์ CSV ใน C:\Temp\DiskSpaceReport ในตัวอย่างนี้ เราได้เปิดไฟล์ CSV ด้วย Microsoft Excel
เพิ่มพื้นที่ว่างในดิสก์สำหรับ Windows Servers โดยเฉพาะ
สมมติว่าคุณต้องการส่งออกพื้นที่ว่างในดิสก์สำหรับ Windows Servers ที่ระบุ แทนที่จะเรียกใช้สคริปต์กับระบบ Windows ทั้งหมดใน Active Directory คุณสามารถสร้างและใช้รายการเฉพาะเป็นอินพุตได้
สร้างไฟล์ CSV โดยใช้ชื่อ ADComputers.csv ใน C:\Temp เพิ่มส่วนหัว ชื่อโฮสต์ และเพิ่มชื่อโฮสต์ของ Windows Servers ในแต่ละบรรทัด
ในตัวอย่างของเรา เราต้องการส่งออกพื้นที่ว่างในดิสก์บนเซิร์ฟเวอร์ Windows สองเครื่อง
แทนที่ บรรทัด 15 - บรรทัด 24 ด้วยโค้ดด้านล่าง
# Import CSV file
$Servers = Import-Csv "C:\Temp\ADComputers.csv"
# Loop through each system
$DiskReport = ForEach ($Server in $Servers) {
# Get system
$System = Get-ADComputer $Server.Hostname | Where-Object { $_.Enabled -eq $true } |
Select-Object Name, DNSHostName | Sort-Object Name
Get-WmiObject win32_logicaldisk `
-ComputerName $System.DNSHostName -Filter "Drivetype=3" `
-ErrorAction SilentlyContinue
}พื้นที่ว่างในดิสก์ Windows 10
หากคุณต้องการตรวจสอบพื้นที่ว่างในดิสก์ทั้งหมดบนไคลเอนต์ Windows 10 คุณต้องได้รับไคลเอนต์ Windows 10 ทั้งหมด แก้ไข บรรทัด 16 ในสคริปต์ PS เป็น:
$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "*Windows 10*" } |เรียกใช้สคริปต์ PowerShell และตรวจสอบไฟล์ CSV รายงานดิสก์ด้วยโปรแกรมที่คุณชื่นชอบ ในตัวอย่างนี้ เป็นแอปพลิเคชัน Microsoft Excel
พื้นที่ว่างในดิสก์ Windows 11
หากคุณต้องการตรวจสอบพื้นที่ว่างในดิสก์ทั้งหมดบนไคลเอ็นต์ Windows 11 คุณต้องได้รับไคลเอ็นต์ Windows 11 ทั้งหมด แก้ไข บรรทัด 16 ในสคริปต์ PS เป็น:
$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "*Windows 11*" } |เป็นเรื่องดีที่จะได้รับดิสก์ Windows ทุกขนาดในสภาพแวดล้อม
หมายเหตุ: ใช้ซอฟต์แวร์ตรวจสอบบนระบบเสมอเพื่อรับการแจ้งเตือนเมื่อพื้นที่ดิสก์เต็ม สคริปต์ไม่สามารถแทนที่ซอฟต์แวร์ระบบการตรวจสอบได้!
เช่นเคย การมีซอฟต์แวร์ตรวจสอบที่ดีทำงานบนทุกระบบของคุณเป็นสิ่งสำคัญ มันจะแจ้งเตือนคุณทันทีเมื่อดิสก์ไดรฟ์เต็ม
อ่านเพิ่มเติม: แปลงดิสก์ที่จัดเตรียมแบบหนาให้เป็นแบบบางบน VMware ESXi »
บทสรุป
คุณได้เรียนรู้วิธีตรวจสอบพื้นที่ว่างบนดิสก์บน Windows ด้วย PowerShell รับไคลเอนต์ Windows Server, Windows 10 หรือ Windows 11 ที่เข้าร่วมโดเมนเป็นกลุ่มและส่งออกพื้นที่ดิสก์ในรายงาน
ใช้สคริปต์นี้เมื่อคุณต้องการตรวจสอบพื้นที่ว่างในดิสก์และสร้างรายงาน ตัวอย่างเช่น หากคุณกำลังจะพูดคุยกับลูกค้าและอธิบายว่าทำไมคุณจึงต้องซื้อดิสก์เพิ่ม หรือสิ่งที่มีประโยชน์คือคุณสามารถดูได้ในรายงานดิสก์ว่ามีการจัดสรรพื้นที่ว่างบนระบบเป็นจำนวนเท่าใด และบางทีคุณอาจไม่ต้องการมัน นี่เป็นวิธีที่ยอดเยี่ยมในการปรับขนาดโวลุ่มของดิสก์และไม่เปลืองพื้นที่ว่างเพิ่มเติม
คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการเครื่องหมายคำพูดสามเท่าของ Excel CSV เมื่อบันทึกไฟล์ อย่าลืมติดตามเราและแบ่งปันบทความนี้




