个人电脑安装了公司要求安装的入网小助手,卸载的时候需要验证码。怎样在不经过公司IT的帮助下卸载呢?这里提供一种方法。
吐槽
先吐槽一下这个流氓软件吧。安装后在程序和功能的列表中根本找不到这个软件,在右键菜单中可以看到卸载功能。点击后会弹出输入验证码的窗口。好不容易找到在Windows/SysWOW64/IsAgent,但是这个文件夹删不掉,提示在运行中。在任务管理器中终止进程后,会立即重新启用,且该软件自带开机启动。
卸载
# ============ ASM入网小助手 一键卸载脚本(日志版)============$logPath = "$env:USERPROFILE\Desktop\卸载日志.txt"Start-Transcript -Path $logPath -Force | Out-NullWrite-Host ""Write-Host "==================== 开始卸载 ASM入网小助手 ====================" -ForegroundColor Cyanif (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {Write-Host "不是管理员权限!请右键 PowerShell -> 以管理员身份运行 后重试" -ForegroundColor RedStop-Transcript | Out-NullRead-Host "按回车退出"exit}Write-Host "[1/6] 停掉守护服务..." -ForegroundColor Yellowsc.exe config IsaSvcProtectServer start= disabled 2>&1 | ForEach-Object { $_ }sc.exe stop IsaSvcProtectServer 2>&1 | ForEach-Object { $_ }Write-Host "[2/6] 恢复被劫持的 Ias 服务..." -ForegroundColor YellowSet-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Ias\Parameters" -Name ServiceDll -Value "C:\WINDOWS\System32\iassvcs.dll" -ErrorAction SilentlyContinue(Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Ias\Parameters").ServiceDllWrite-Host "[3/6] 终止所有相关进程..." -ForegroundColor Yellow$procs = Get-CimInstance Win32_Process | Where-Object { $_.ExecutablePath -match 'IsAgent' }foreach ($p in $procs) { taskkill /F /T /PID $p.ProcessId 2>&1 | ForEach-Object { $_ } }Start-Sleep -Seconds 3$procs2 = Get-CimInstance Win32_Process | Where-Object { $_.ExecutablePath -match 'IsAgent' }foreach ($p in $procs2) { taskkill /F /T /PID $p.ProcessId 2>&1 | ForEach-Object { $_ } }Write-Host "[4/6] 删除 IsAgent 文件夹..." -ForegroundColor YellowRemove-Item -LiteralPath "C:\WINDOWS\SysWOW64\IsAgent" -Recurse -Force -ErrorAction SilentlyContinueWrite-Host "[5/6] 删除守护服务注册..." -ForegroundColor Yellowsc.exe delete IsaSvcProtectServer 2>&1 | ForEach-Object { $_ }Write-Host "[6/6] 安排重启时自动清理残留..." -ForegroundColor Yellow$leftover = Get-ChildItem "C:\WINDOWS\SysWOW64\IsAgent" -Recurse -Force -ErrorAction SilentlyContinueforeach ($f in $leftover) {$list = @("\??\$($f.FullName)", "")$old = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -ErrorAction SilentlyContinue).PendingFileRenameOperationsif ($old) { $list = @($old) + $list }Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -Type MultiString -Value $list}Write-Host ""Write-Host "==================== 验证结果 ====================" -ForegroundColor Cyan$pLeft = Get-CimInstance Win32_Process | Where-Object { $_.ExecutablePath -match 'IsAgent' }if ($pLeft) { Write-Host "还有进程:$($pLeft.Name -join ', ')" -ForegroundColor Red } else { Write-Host "OK:没有残留进程" -ForegroundColor Green }if (Test-Path "C:\WINDOWS\SysWOW64\IsAgent") { Write-Host "注意:残留文件已安排重启时清除" -ForegroundColor Yellow } else { Write-Host "OK:文件夹已删除" -ForegroundColor Green }$svc = Get-Service IsaSvcProtectServer -ErrorAction SilentlyContinueif ($svc) { Write-Host "注意:守护服务还在,重启后重跑本脚本" -ForegroundColor Yellow } else { Write-Host "OK:守护服务已删除" -ForegroundColor Green }Write-Host ""Write-Host "全部完成!日志已保存到:$logPath" -ForegroundColor GreenStop-Transcript | Out-NullRead-Host "按回车关闭窗口"
将上述代码复制后粘贴到记事本,然后修改后缀“txt”为“ps1”
@echo offnet session >nul 2>&1if %errorlevel% neq 0 (powershell -Command "Start-Process '%~f0' -Verb RunAs"exit /b)cd /d "%~dp0"for %%f in (*.ps1) do set "SCRIPT=%%f"if not defined SCRIPT (echo [错误] 同一文件夹下找不到 .ps1 文件pauseexit /b)echo [信息] 找到脚本: %SCRIPT%echo [信息] 运行中,窗口不会自动关闭...powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0%SCRIPT%"echo.echo ==========================================echo 运行结束!按任意键关闭窗口pause >nul
将上述代码复制后粘贴到记事本,然后修改后缀“txt”为“bat”。两项都完成后,双击“.bat”文件。等待程序跑完。当完成后,右下角托盘里的程序就完全退出了。这时候找到任务管理器中的IsaSvcProtectServer.exe进程,终止掉,就可以完全删除IsAgent文件夹了。
⚠️ 提醒:
1.该脚本会改系统服务和注册表,运行前请确认来源可信。
2.该方法仅用于卸载,无法解决卸载后上网的需求。如有连接公司网络的需求请谨慎使用。
3.使用过程中如有问题欢迎留言,如果对您有帮助欢迎点赞和分享。
夜雨聆风