使用PowerShell下载运行Malwarebytes Anti-Rootkit Beta时提示找不到文件的解决办法
解决PowerShell启动Malwarebytes Anti-Rootkit时的「文件找不到」错误
核心问题是Start-Process提示找不到文件,本质是下载环节未生成有效文件,或是路径引用出错,以下是针对性修复方案:
1. 确保文件成功下载
旧的System.Net.WebClient下载失败时不会主动报错,哪怕URL失效、网络中断,脚本仍会继续执行Start-Process,自然找不到文件。换成Invoke-WebRequest会直接抛出错误,同时添加文件存在性检查:
$url = "https://data-cdn.mbamupdates.com/web/mbar-1.10.3.1001.exe" # 用Join-Path避免路径拼接出错 $outpath = Join-Path -Path $PSScriptRoot -ChildPath "mbar-1.10.3.1001.exe" # 下载失败直接抛出错误 Invoke-WebRequest -Uri $url -OutFile $outpath # 强制检查文件是否存在 if (-not (Test-Path -Path $outpath -PathType Leaf)) { throw "下载失败,目标文件不存在: $outpath" } $args = @("Comma","Separated","Arguments") Start-Process -FilePath $outpath -ArgumentList $args
2. 确认$PSScriptRoot的有效性
如果是直接在PowerShell控制台逐行输入代码(未保存为.ps1文件执行),$PSScriptRoot会是空值,导致下载路径变成无效的/mbar-1.10.3.1001.exe。解决方法二选一:
- 将代码保存为脚本文件,用
.\脚本文件名.ps1的方式执行 - 改用明确的可写入路径,比如系统临时文件夹:
$downloadDir = [System.IO.Path]::GetTempPath() $outpath = Join-Path -Path $downloadDir -ChildPath "mbar-1.10.3.1001.exe"
3. 检查下载链接是否失效
你使用的URL可能已过期,Malwarebytes的Beta版本下载链接经常更新。手动在浏览器打开https://data-cdn.mbamupdates.com/web/mbar-1.10.3.1001.exe,若无法访问,去Malwarebytes官网获取最新的Anti-Rootkit Beta下载地址替换。
4. 排查权限问题
如果$PSScriptRoot所在目录需要管理员权限才能写入(比如C盘根目录),下载的文件根本无法保存。解决方法二选一:
- 右键PowerShell选择「以管理员身份运行」
- 更换到普通权限即可写入的目录(比如
C:\Users\你的用户名\Documents)
内容的提问来源于stack exchange,提问作者user17931281
相关产品推荐
相关产品推荐

