Проблема с настройкой пароля администратора на Windows CE
-
02-10-2019 - |
Вопрос
Я написал сценарий менеджера пользователя NTLMSetUserInfo
Чтобы установить пароли некоторых пользователей, в том числе ADMIN
... Что я заметил, что если я сделаю это комбинацию имени пользователя / пароля идеально для всех сценариев, таких как Telnet, HTTP Auth etc, но не просмотр файлов.
После дальнейшего проверки я заметил, что при установке пароля администратора через встроенные веб-страницы конфигурации CE это работает.
Реестр для администратора выглядит так, когда я использую NTLMSetUserInfo
NT = [hex value]
Реестр для администратора содержит дополнительное поле, Password
Когда я устанавливаю пароль администратора через веб-страницы CE.
NT = [hex value]
Password = [hex value]
Я рисую NTLMSetUserInfo
Правильно не устанавливает глобальный пароль CE для администратора, поэтому не сможет отправлять в поле.
Я нашел следующую функцию в веб-кодах веб-кода CE 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
имеет следующую линию
Чтобы использовать эту функцию, вы должны включить компонент пароля, Fspass в файл CESYSGEN.BAT.
Я не уверен, что это значит, как я довольно новых для платформерного пользователя и т. Д.
Может кто-нибудь помочь мне или указать мне в правильном направлении?
Решение
Добавьте следующее в верхнюю часть файла кода:
extern "C" BOOL SetPassword(LPWSTR lpszOldPassword, LPWSTR lpszNewPassword);
Линкер сделает все остальное.
Другие советы
Я не могу дать точный ответ прямо сейчас (никогда не использовал эту аутентификацию). Но я просто пытался использовать (на самом деле компилировать) SetPassword
В клонированной версии драйвера Audiogateway Bluetooth у меня есть и его компилируется без проблем.
Когда я пытался использовать его в подпроекте или регулярном независимом проекте, у меня была та же ошибка, которую вы получили. Таким образом, быстрое решение может быть сделано в драйвере и посмотреть, работает ли он.
Что касается комментариев в документах, я предполагаю, что они сводятся к SYSGEN_FSPASSWORD
Выбирается в каталоге, хотя я пока не проследил. Я думаю, вы выбрали это, если вы можете установить пароли и такие.