这不是一篇「AI 有多神」的文章。它记录的是一次真实的装机/调环境过程:我在旁边看着,AI 动手,中间踩了坑、被权限拦住、还差点删掉数据库。适合第一次接触这类工具、想知道「它到底能干什么、不能干什么」的人。
一、先说结论:它到底能自动化什么
很多人对「AI 操作电脑」的想象是这样:它看着屏幕,移动鼠标,点开「下一步」「我同意」,像人一样把软件装完。
实际上,它走的完全是另一条路 —— 不打界面,直接调命令行和系统接口。
这个区别决定了它的能力边界,我建议你一开始就建立这个认知:
| 你想象中的方式 | 实际发生的方式 |
|---|---|
| 看屏幕 → 找按钮 → 点鼠标 | 直接执行命令 → 读返回结果 |
| 靠「看起来对不对」判断 | 靠「退出码是不是 0」判断 |
| 界面变了就懵 | 命令不变就一直能用 |
我第一次让它干活,得到的不是一句「装好了」,而是一串结构化输出:[ok] Node.js v24.17.0、installed: 14 files, 84.2 KB。这种可验证性,才是自动化真正值钱的地方。
二、场景一:装插件,撞上「没有 npm」的墙
我想给它装一个技能插件。最自然的命令是:
npx skillsaddhttps://github.com/xxx/yyy--skillzzz结果第一步就崩了:
npx : 无法将"npx"项识别为 cmdlet、函数、脚本文件或可运行程序的名称查下来发现,这台机器上的 Node 是某个桌面程序内置的,没有 npm/npx。换成直接下载,又撞上第二堵墙:
Failed to establish a new connection / 远程主机强迫关闭了一个现有的连接raw.githubusercontent.com根本连不上,常用的 jsDelivr 主节点时通时断。
它是怎么绕过去的?
- 先探测通不通 —— 挨个试镜像,找出
gcore.jsdelivr.net可用(约 76KB/s) - 不走完整仓库(那个仓库 876MB),只取技能目录里那 14 个文件
- 用 GitHub 的 blob 接口取文件,每个文件用 git 的 SHA-1 校验
最后一步是关键,输出长这样:
ok SKILL.md 7361B sha=verified ok scripts/memo-api.sh 7593B sha=verified DONE 14 / 14新手要记住的一点:下载脚本最怕「看起来成功了,其实文件是残的」。核对哈希值这种事,AI 做起来不知疲倦,你自己做会疯。
三、场景二:清空文件夹,差点删掉数据库
「帮我把空文件夹清了」—— 听起来最容易的任务,结果是整场最惊险的一步。
它先扫描,报告:D 盘 151 个空目录。然后做了件让我意外的事:没有立刻删,而是先分类。
分类的依据是「这个目录是谁的地盘」:
WpSystem\...里 137 个 —— 微软商店应用的私有数据,删了应用会异常SteamLibrary\...4 个 —— Steam 自己维护的库结构,删了会重建vs2022缓存\...3 个 —— 被 TrustedInstaller 锁定,非管理员根本删不掉
然后它报了一个「差点出事」的发现:
D:\MySQL\MySQL Server 8.0\Data ← 扫描结果显示"空目录" 读取失败 -> UnauthorizedAccessException: 访问被拒绝这个目录不是空的,是我没有读取权限。而它正是 MySQL 的数据库数据目录。
这件事教会我一个反直觉的坑:
很多脚本判断「目录是否为空」,用的是「列出子项,列表为空就算空」。
但如果列目录本身失败了,返回的也是空列表 ——「无权限」和「真空」看起来一模一样。
如果它傻乎乎地按扫描结果执行删除,我的数据库就没了。
最终结果:151 个里只删了 2 个(Windows 的缓存空壳),释放0 字节。
对,0 字节。因为空目录本来就不占磁盘空间 —— 它一开始就提醒过我这句话,只是我当时没当回事。
四、场景三:修一个「点了没反应」的快捷方式
桌面上的 Keil 图标双击没反应。它查了一下:
快捷方式目标 : E:\keil\UV4\UV4.exe -> 存在: False 实际文件位置 : E:\keil\Backup.001\UV4\UV4.exe -> 存在: True文件夹被挪进了一个备份目录,快捷方式还指着老路径。修复方式是一段 PowerShell:
$sh=New-Object-ComObject WScript.Shell$s=$sh.CreateShortcut('C:\Users\你\Desktop\Keil.lnk')$s.TargetPath ='E:\keil\Backup.001\UV4\UV4.exe'$s.WorkingDirectory ='E:\keil'$s.IconLocation ='E:\keil\Backup.001\UV4\UV4.exe,0'$s.Save()改完它还做了件事:先备份原文件,再改。
已备份 -> default-workspace\.lnk-backup\Keil.lnk.bak然后启动验证,确认进程真的起来了才算完。
新手提示:修改系统里的东西之前先备份,这条规则对人对 AI 都适用。它主动备份这件事,比我预期的靠谱。
五、四个必须知道的天花板
这部分可能比前面更有用。知道它不能干什么,比知道它能干什么更重要。
1. 它启动的图形界面程序,活不过那条命令
它成功启动过 Keil(窗口真的出现了),但我一查,进程已经没了。用记事本做对照实验,同样被杀。
原因:这类工具的命令都在一个受控的进程树里跑,命令一结束,子进程统一回收。
所以「帮我打开 Photoshop 然后慢慢调」这种需求,现阶段做不到。
2. 浏览器不是你想的那样能接管
它试过接管我的 Edge:杀掉全部进程 → 用--remote-debugging-port=9222重启。
结果:
PID=112280 已退出=True 退出码=-2147483645 (0x80000003 STATUS_BREAKPOINT)它自己启动的 Chromium 内核浏览器会被系统直接掐死(两套沙箱打架)。但你自己手动启动的 Edge 完全正常。
结论:要操控浏览器,必须由人启动,AI 只负责连上去。
3. 权限是硬墙,不是它能「想办法」的事
- 写
D:\以外的目录 → 拒绝 - 写
HKCU\Environment环境变量 →Access to the registry path is denied - 创建计划任务 → 需要管理员,拒绝
- 删受保护目录 →
访问被拒绝
它没有「偷偷提权」这种操作,被拦住就是被拦住。这是好事—— 说明权限模型是真的在起作用。
4. 网络受限时,它比人更早发现,也更没办法
被墙的站点它试两三次就放弃,然后告诉你「这条不通,换镜像」。别指望它翻墙。
六、一份可以直接抄的「新手装机清单」
如果你也想这样把自己的机器交给 AI 折腾一遍,按这个顺序来:
第一步:先摸清家底(全只读,零风险)
# 磁盘与容量[System.IO.DriveInfo]::GetDrives()|ForEach-Object{"$($_.Name)$($_.DriveFormat)总$([math]::Round($_.TotalSize/1GB,1))GB "+"剩$([math]::Round($_.AvailableFreeSpace/1GB,1))GB"}# 工具链有没有foreach($cin'node','npm','git','python','bash','curl','jq'){$g=Get-Command$c-ErrorAction SilentlyContinue"{0,-8} {1}"-f$c,$(if($g){$g.Source}else{'缺失'})}第二步:装缺的东西(让它装,但你要看它从哪装 —— 优先官方源,其次可信镜像,最后才核对哈希)
第三步:清理前必须先分类(空目录、缓存、日志 → 和应用目录分开,凡是「程序自己的目录」一律不动)
第四步:改配置前先备份(快捷方式、注册表、配置文件,一律先复制一份)
第五步:每一步都要可验证(进程是否存在、端口是否监听、文件哈希是否匹配)
七、什么时候我会关掉它
自动化不是免费的。我给自己定了三条停手线:
- 不可逆的操作,必须我点头—— 删分区、发布文章、清回收站、杀进程。它每次都会先问,这点做得对。
- 涉及密钥的操作,我自己来—— 登录、密码、验证码。它看不到,我也不想让它看到。
- 它说不清「为什么失败」的时候,停—— 报错看不懂就不该继续瞎试。
最后说个反直觉的感受:这次折腾下来,我觉得它最大的价值不是「快」,而是「不嫌烦」。
清空目录、核对哈希、逐个验证 14 个文件、把 151 个空目录按归属分类 —— 这些事我自己做,做到第 20 个就开始靠猜了。它不会。但它也不会在你该警惕的地方替你警惕—— 那个「无权限被误判成空目录」的坑,是我问了一句「这个真是空的吗」才被翻出来的。
工具替你动手,判断还得你自己来。
本文记录的均为真实操作过程,命令可直接复用;涉及路径的部分请替换成你自己的。