You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell通过变量存储的结果循环实现批量vhdx文件优化的开发问题

PowerShell VHDX批量优化脚本实现

以下是补全所有需求逻辑后的完整可运行脚本:

<# 脚本欢迎提示 #>
Write-Host "本脚本将自动批量优化指定目录下的RDS VHDX文件,释放冗余占用空间,请按照提示完成操作。" -ForegroundColor Green

<# 提示用户输入VHDX文件存储目录 #>
[string]$pathname = Read-Host -Prompt '请输入VHDX文件所在的完整目录路径'

<# 提示用户正在扫描 #>
Write-Host "正在从 $pathname 路径下扫描VHDX文件..."

<# 扫描指定路径下所有VHDX文件,排除UVHD模板文件 #>
$filesFound = Get-ChildItem -Path $pathname -Recurse -Include *.vhdx -Exclude UVHD-template*

<# 输出扫描到的文件列表供用户确认 #>
Write-Host "`n扫描到以下VHDX文件:"
$filesFound | Select-Object FullName, @{Name="文件大小(GB)";Expression={[math]::Round($_.Length/1GB,2)}} | Format-Table -AutoSize

Read-Host "请确认上方文件列表无误,按任意键继续执行优化" -ForegroundColor Green

<# 定义检测文件是否被锁定的函数 #>
function Test-FileLocked {
    param([Parameter(Mandatory=$true)][string]$FilePath)
    try {
        $fileStream = [System.IO.File]::Open($FilePath, 'Open', 'Write', 'None')
        if ($fileStream) { $fileStream.Close() }
        return $false
    }
    catch [System.IO.IOException] {
        return $true
    }
}

<# 初始化跳过文件计数 #>
[int]$skipCount = 0

<# 遍历所有扫描到的VHDX文件 #>
foreach ($file in $filesFound) {
    Write-Host "`n正在处理文件:$($file.FullName)"
    # 检测文件是否被锁定
    if (Test-FileLocked -FilePath $file.FullName) {
        Write-Host "文件已被其他进程锁定,跳过当前文件" -ForegroundColor Yellow
        $skipCount++
        continue
    }
    # 执行VHDX优化操作
    try {
        Optimize-VHD -Path $file.FullName -Mode Full
        Write-Host "文件优化完成" -ForegroundColor Green
    }
    catch {
        Write-Host "文件优化失败:$_" -ForegroundColor Red
        $skipCount++
    }
}

<# 执行完成后输出统计结果 #>
Write-Host "`n==================== 执行完成 ====================" -ForegroundColor Green
Write-Host "本次共处理VHDX文件:$($filesFound.Count) 个"
Write-Host "其中跳过的文件总数:$skipCount 个"

关键说明

  • 脚本必须以管理员身份运行,否则Optimize-VHD系统命令会无执行权限
  • 如果需要加快优化速度,可以将Optimize-VHD的-Mode Full参数替换为-Mode Quick,仅执行快速空间回收
  • 如果不需要递归扫描子目录下的VHDX文件,删除Get-ChildItem中的-Recurse参数即可

内容的提问来源于stack exchange,提问作者Brad Imsicke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:45:05