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

PowerShell脚本报错:BitLocker禁用时MountPoint为空的修复方法

修复BitLocker禁用脚本的参数为空错误

问题背景

尝试编写PowerShell脚本,检查BitLocker卷的保护状态,若状态为On则禁用对应卷的BitLocker保护。原脚本如下:

Get-BitLockerVolume | select ProtectionStatus | ForEach-Object {$_.ProtectionStatus
    if($_.ProtectionStatus -like "On")
    {
        Disable-BitLocker -MountPoint $_.MountPoint
    }
    else
    {
        Break
    }
}

运行后出现以下错误:

Disable-BitLocker : Cannot validate argument on parameter 'MountPoint'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At line:4 char:39
+         Disable-BitLocker -MountPoint $_.MountPoint
+                                       ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Disable-BitLocker], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Disable-BitLocker

错误原因

原脚本中select ProtectionStatus仅保留了BitLocker卷对象的ProtectionStatus属性,丢弃了MountPoint等其他关键属性,导致ForEach-Object中访问$_.MountPoint时返回空值,触发参数验证错误。另外,原脚本的Break语句会在遇到第一个Off状态的卷时直接终止遍历,若需处理所有符合条件的卷,需调整该逻辑。

修复方案

方案1:保留完整对象属性(推荐)

移除select ProtectionStatus,让ForEach-Object处理包含所有属性的BitLocker卷对象:

Get-BitLockerVolume | ForEach-Object {
    # 用-eq做精确匹配,比-like更适合固定枚举值场景
    if ($_.ProtectionStatus -eq "On") {
        Disable-BitLocker -MountPoint $_.MountPoint
        Write-Host "已禁用BitLocker保护: 卷 $($_.MountPoint)"
    } else {
        Write-Host "跳过卷 $($_.MountPoint): 保护状态为 $($_.ProtectionStatus)"
    }
}

方案2:仅保留需要的属性

若需精简传递的对象属性,可通过Select-Object同时保留ProtectionStatus和MountPoint:

Get-BitLockerVolume | Select-Object ProtectionStatus, MountPoint | ForEach-Object {
    if ($_.ProtectionStatus -eq "On") {
        Disable-BitLocker -MountPoint $_.MountPoint
        Write-Host "已禁用BitLocker保护: 卷 $($_.MountPoint)"
    } else {
        Write-Host "跳过卷 $($_.MountPoint): 保护状态为 $($_.ProtectionStatus)"
    }
}

补充说明

  • 状态匹配用-eq更合理:ProtectionStatus是固定枚举值,精确匹配效率更高且避免意外匹配。
  • 关于Break:若需遍历所有卷并处理状态为On的卷,建议移除该语句;若确实需要遇到第一个Off状态就停止遍历,可保留原逻辑。

内容的提问来源于stack exchange,提问作者Bui Huu Loi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:01:55