我已经编写了一个用户管理器脚本,用于NTLMSetUserInfo
设置某些用户的密码,包括ADMIN
......我注意到的是,如果我这样做,用户名/密码组合适用于所有场景,如 Telnet、HTTP Auth 等,但不是文件浏览。
经过进一步检查,我注意到通过内置的 CE 配置网页设置管理员密码时,它可以工作。
当我使用时,管理员的注册表看起来像这样NTLMSetUserInfo
NT = [hex value]
Password
当我通过 CE 网页设置管理员密码时,管理员的注册表包含一个额外的字段。
NT = [hex value]
Password = [hex value]
我NTLMSetUserInfo
认为没有正确设置管理员的全局 CE 密码,因此无法将文件浏览到框中。
我在 CE Web 代码解析 DLL 中找到了以下函数,该函数称为SetPassword
. 我编写了一个单独的函数来处理管理案例,但我无法编译它。这是它的一个片段
#include <windbase.h>
bool UserAccounts::SetAdminPassword(const std::string &passwordOld, const std::string &password)
{
wchar_t wpass[512];
wchar_t wpassold[512];
mbstowcs(wpass, password.c_str(), 512);
mbstowcs(wpassold, passwordOld.c_str(), 512);
return SetPassword(wpassold, wpass) == TRUE;
}
这不会编译说明'SetPassword': identifier not found
. 我在CE 文档中SetPassword
注意到它有以下行
要使用此功能,您必须在 Cesysgen.bat 文件中包含密码组件 Fspass。
我不确定这意味着什么,因为我对 PlatformBuilder 等还是很陌生...
任何人都可以帮助我或指出我正确的方向吗?