Я написал скрипт менеджера пользователей, который использует NTLMSetUserInfo
для установки паролей некоторых пользователей, включая ADMIN
... Однако я заметил, что если я сделаю это, то имя пользователя / пароль Комбинация отлично работает для всех сценариев, таких как Telnet, HTTP Auth и т. д., но НЕ для просмотра файлов.
При дальнейшей проверке я заметил, что при установке пароля администратора через встроенные веб-страницы конфигурации CE он работает.
Реестр для администратора выглядит так, когда я использую NTLMSetUserInfo
NT = [hex value]
Реестр для администратора содержит дополнительное поле Password
, когда я устанавливаю пароль администратора через веб-страницы CE.
NT = [hex value]
Password = [hex value]
Я полагаю, NTLMSetUserInfo
неправильно устанавливает глобальный пароль CE для Admin, следовательно, не может просматривать файл в окне.
В DLL-файле синтаксического анализа веб-кода CE была обнаружена следующая функция, которая называется 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
следующую строку
Чтобы использовать эту функцию, вы должны включить
компонент пароля, Fspass, в
ваш файл Cesysgen.bat.
Я не уверен, что это значит, так как я новичок в PlatformBuilder и т. Д ...
Кто-нибудь может мне помочь или указать мне правильное направление?