質問

私はユーザーマネージャーのスクリプトを使用しました NTLMSetUserInfo 一部のユーザーのパスワードを含む ADMIN...私が気づいたのは、これを行うと、ユーザー名 /パスワードの組み合わせがTelnet、HTTP AUTHなどのすべてのシナリオに完全に機能するが、ファイルブラウジングではないということです。

さらに検査すると、組み込みのCE構成Webページを介して管理者パスワードを設定すると、動作することがわかりました。

管理者のレジストリは私が使用するときのように見えます NTLMSetUserInfo

NT = [hex value]

管理者のレジストリには追加のフィールドが含まれています。 Password CE Webページを介して管理者パスワードを設定したとき。

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を含める必要があります。

私はプラットフォームビルダーなどにかなり新しいので、これが何を意味するのかわかりません...

誰かが私を助けたり、私を正しい方向に向けたりできますか?

役に立ちましたか?

解決

コードファイルの上部に次のものを追加します。

extern "C" BOOL SetPassword(LPWSTR lpszOldPassword, LPWSTR lpszNewPassword);

リンカーは残りをします。

他のヒント

今は正確な答えを出すことはできません(この認証を使用したことはありません)。しかし、私はただ使用しようとしました(実際にコンパイルします) SetPassword 私が持っているBluetooth Audiogatewayドライバーのクローン版で、問題なくコンパイルされています。

サブプロジェクトや通常の独立したプロジェクトで使用しようとしたとき、あなたと同じエラーがありました。したがって、簡単な解決策は、ドライバーでこれを行い、それが機能するかどうかを確認することです。

ドキュメントのコメントに関して、私は彼らが持っていることにかかると思います SYSGEN_FSPASSWORD 私はまだこれをトレースしていませんでしたが、カタログで選択しました。パスワードなどを設定できる場合は、これを選択していると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top