登录守门 windowslock（收费授权版）
适用：Windows Server 2016 / 2019 / 2022 / 2025，64 位。阿里云、腾讯云、亚马逊云、微软云、华为云和其他云都可以，程序装在系统里面，不调用某一家云的接口。

官网与购买
- 用户官网 / 下载：https://windowslock.com
- 购买授权（USDT 包月 / 包年）：https://windowslock.com/buy
- 管理后台：https://htt666.windowslock.com

授权说明
- 需先购买授权码再安装。支持包月、包年，支付 USDT（默认 TRC20）。
- 激活后绑定本机机器码。到期前 7 / 3 / 1 天会在软件里提醒；若开启了 Telegram，也会尝试发到期提醒。
- 过期后有短宽限期，请尽快到官网续费。

它解决的问题
远程桌面端口被扫到以后，对方只要撞到密码就能登录。装上之后，登录除了账号密码，还要手机上的 6 位验证码。谷歌验证器、微软验证器、Authy 都行。

同时会做这些事：
- 远程桌面改成加密连接，登录画面上单独有验证码
- 停掉云厂商用来远程执行命令、在线改密码的代理
- 关掉 WinRM，并拦住 135、139、445 这些只用密码就能进来的端口
- 有 TPM 时加密系统盘。对方把磁盘摘走挂到别的机器上，看不到内容，也删不掉这个登录验证
- 装完先留 20 分钟旧的密码登录，给你自己试。试通后再关掉
- 可选：登录成功后发一条 Telegram 消息。安装时不填 Token 和管理员 ID，就没有这条提醒

做不到的事
云厂商如果在虚拟机还开着的时候，从虚拟化底层去读内存，理论上仍有办法。这是虚拟机本身的限制，不是验证码能挡住的。他们平时用的控制台登录、在线改密、救援挂盘，会被堵住。最后通常只能重装，重装会清掉这台机器上的数据。

怎么装
1. 在 https://windowslock.com/buy 购买授权，USDT 付款并提交交易哈希，到账后拿到授权码。
2. 把带有 windowslock.exe 的那个 windowslock 文件夹拷到服务器上。里面要有 windowslock.exe、windowslock.dll、QrCodeGenerator.dll、使用说明.txt。
3. 右键“以管理员身份运行”windowslock.exe。不要关现在这个远程窗口。
4. 第一页粘贴授权码，点“激活授权”，通过后再继续。
5. 用手机扫二维码，或手动输入密钥。把 8 个备用码抄到别的地方，每个只能用一次。
6. 输入手机上当前的 6 位数字。这一下是为了确认时间和密钥是对的，这个数字随后就不能再用来登录。
7. 看清选项。页面最下面可以填 Telegram：
   · 要登录提醒 / 到期提醒：两个都填。机器人 Token 从 BotFather 复制。管理员 ID 是一串数字，在 Telegram 里给 @userinfobot 发一条消息就能看到。先私聊打开你的机器人并点一次 Start，否则收不到消息。
   · 不要提醒：两格都留空。
   填好后点“开始保护这台服务器”。
8. 另开一个远程桌面。登录画面选“登录守门”，输入 Windows 密码，再输入手机上新的 6 位数字。
9. 试通之后，回到原来的窗口，点“测试成功，关闭旧登录”。

磁盘恢复密钥只会在最后一页出现一次。抄走，不要保存在这台服务器上。没有这把密钥，磁盘加密后的数据谁也解不开，包括你自己。

系统时间必须准。验证码靠时间计算，不要关掉时间同步。

Telegram 登录提醒
安装页面最下面有两格：机器人 Token、管理员数字 ID。
- 两个都填：登录或解锁成功后，大约半分钟内发一条消息。内容是电脑名、账户、登录还是解锁、来源地址、时间。密码和验证码不会发。授权即将到期时也会尝试发提醒。
- 留空：不发送任何登录提醒。
- 只填一个：这次不会打开提醒。
消息发不出去也不影响登录。

装好以后要改，打开桌面上的“登录守门”，输入手机上当前的验证码：
- 更换 Token：填验证码和新 Token，点“更换 Token”
- 添加管理员：填验证码和管理员 ID，点“添加管理员”
- 删除管理员：填验证码和管理员 ID，点“删除管理员”
- 续费：在维护页粘贴新授权码，点“激活 / 续费授权码”
验证码不对，Telegram 三项都改不了。

这个机器人只负责把登录消息和到期提醒发出去。程序不读取机器人收到的消息，也不会按消息做任何事。Token 被别人拿到，也不能靠它控制这台服务器。

丢失验证器
还有备用码：在验证码那一格输入备用码，例如 ABCDE-23456。用掉一个就作废。
备用码也没了，但抄过磁盘恢复密钥：只能重装，或者在云厂商的救援环境里用恢复密钥解开磁盘，再删掉下面这个注册表项，旧的密码登录才会回来。

SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Provider Filters\{D4B02F85-3A69-4C7E-AD12-8F5B9E3C7026}

没有磁盘加密、也没有恢复密钥时，把系统盘挂到别的机器上，删掉同一项注册表，也能回到密码登录。所以没有 TPM 的机器，对方如果能摘磁盘，仍然可以卸掉这个程序。登录验证码本身照样生效。

卸载
打开“登录守门”，输入当前验证码，点卸载。云代理和远程桌面原来的登录方式会恢复。磁盘加密不会自动关掉。

重新编译（开发者）
在装有 VS Build Tools 的 Windows 上，于源码目录执行：powershell -ExecutionPolicy Bypass -File build.ps1
产出在 windowslock\windowslock\ 目录。

二维码生成使用 Net.Codecrete.QrCodeGenerator 2.0.7，MIT 许可，作者 Manuel Bleichenbacher 与 Project Nayuki。
