在Windows CE上设置管理员密码的问题
-
02-10-2019 - |
题
我已经写了一个用户经理脚本 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非常陌生等...
谁能帮助我或指向正确的方向?
解决方案
将以下内容添加到代码文件的顶部:
extern "C" BOOL SetPassword(LPWSTR lpszOldPassword, LPWSTR lpszNewPassword);
链接器将完成其余的工作。
其他提示
我现在无法确切答案(从未使用过此身份验证)。但是,我只是尝试使用(实际上是编译) SetPassword
在我拥有的蓝牙蓝牙驱动程序的克隆版本中,它毫无问题地编译了它。
当我尝试在子弹或常规独立项目中使用它时,我遇到的错误与您遇到的同样错误。因此,快速解决方案可能是在驱动程序中执行此操作,看看它是否有效。
关于文档中的评论,我认为它们是归结为 SYSGEN_FSPASSWORD
在目录中选择,尽管我还没有追踪此内容。我想如果可以设置密码等,您可以选择此选择。