为何此PowerShell Foreach循环会执行两次迭代?
McAfee消费者产品卸载脚本(U盘环境适配)
这段脚本在执行后续代码前会进行2次迭代,专为U盘运行环境设计,用于自动定位并执行McAfee官方卸载工具,完成全组件清理。
中文版脚本代码
Write-Host "开始执行McAfee消费者产品卸载" -ForegroundColor Cyan $所有驱动器 = Get-PSDrive foreach ($驱动器根路径 in $所有驱动器.Root) { if (Test-Path "$驱动器根路径`mccleanup\mccleanup.exe") { Set-Location "$驱动器根路径`mccleanup" .\Mccleanup.exe -p StopServices,MFSY,PEF,MXD,CSP,Sustainability,MOCP,MFP,APPSTATS,Auth,EMproxy,FWdiver,HW,MAS,MAT,MBK,MCPR,McProxy,McSvcHost,VUL,MHN,MNA,MOBK,MPFP,MPFPCU,MPS,SHRED,MPSCU,MQC,MQCCU,MSAD,MSHR,MSK,MSKCU,MWL,NMC,RedirSvc,VS,REMEDIATION,MSC,YAP,TRUEKEY,LAM,PCB,Symlink,SafeConnect,MGS,WMIRemover,RESIDUE -v -s Write-Host "McAfee消费者产品卸载完成" -ForegroundColor Magenta } }
关键逻辑说明
- 遍历系统中所有驱动器,自动识别存放卸载工具的U盘路径
- 定位到U盘内的
mccleanup目录,执行带全组件参数的卸载命令 -v参数启用详细输出,-s参数启用静默执行(无交互弹窗)- 卸载完成后会输出醒目的完成提示
内容的提问来源于stack exchange,提问作者Moxadonis
相关产品推荐
相关产品推荐

