ค้นหาเว็บไซต์

ตรวจสอบพื้นที่ว่างในดิสก์บน 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 เมื่อบันทึกไฟล์ อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง