使用 SAMR API 创建本地管理员,其操作层级低于 net.exe、PowerShell 的 New-LocalUser 或 NetUserAdd API。
需要管理员权限,如果用户已存在,则将其添加到组中,但不会更新密码。
本仓库提供 4 种实现(C#、Python、Rust 和 Crystal),但其他语言也有公开版本,例如 @M0nster3 的 C++ 或 @AgeloVito 的 BOF 文件。
此代码是 这篇博客文章 的补充,该文章介绍了创建本地帐户的不同技术。
参数如下:
-u, --username - 要创建的用户名(必填)
-p, --password - 用户的密码(必填)
-g, --group - 组名(默认:"Administrators")
-v, --verbose - 显示详细输出
-h, --help - 显示帮助信息
# 基本用法
adduser.exe -u <用户名> -p <密码>
# 指定组
adduser.exe -u <用户名> -p <密码> -g <组名>
# 详细输出
adduser.exe -u testuser -p MyPass123 -g Administrators -v

该工具使用了以下 SAMR 协议 调用:
使用 Visual Studio 或 msbuild 编译。
cd Crystal
crystal build adduser.cr --release
.\adduser.exe -u testuser -p MyPass123 -v
你可以使用 Python 脚本:
cd Python
python adduser.py -u testuser -p MyPass123 -v
或者使用以下命令创建独立的可执行文件:
cd Python
pyinstaller -F adduser.py
.\dist\adduser.exe -u testuser -p MyPass123 -v
cd Rust && mkdir target
cargo build --release
.\target\release\adduser.exe -u testuser -p MyPass123 -v