0

私は、次のようなNTLMSetUserInfo一部のユーザーのパスワードを設定するために使用するユーザーマネージャースクリプトを作成しましたADMIN...これを行うと、ユーザー名とパスワードの組み合わせは、Telnet、HTTP Authなどのすべてのシナリオで完全に機能しますが、そうではありません。ファイルブラウジング。

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

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

NT = [hex value]

PasswordCE Webページを介して管理者パスワードを設定すると、管理者のレジストリに追加のフィールドが含まれます。

NT = [hex value]
Password = [hex value]

管理者NTLMSetUserInfoのグローバルCEパスワードが適切に設定されていないため、ボックスをファイル参照できません。

と呼ばれる仕事をするCEWebコード解析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 foundCEのドキュメントでSetPassword、次の行があることに気付きました。

この関数を使用するには、Cesysgen.batファイルにパスワードコンポーネントFspassを含める必要があります。

私はPlatformBuilderなどにかなり慣れていないので、これが何を意味するのかわかりません...

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

4

2 に答える 2

0

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

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

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

于 2010-04-29T13:36:19.310 に答える
0

コード ファイルの先頭に次を追加します。

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

残りはリンカが行います。

于 2010-06-16T13:42:02.417 に答える