掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ActiveDirectoryのユーザアカウントのパスワード有効期限を取得するには? (ID:71485)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
オショウさん ありがとうございます!! 大変参考になり、無事取得することができました。 (get_PasswordExpirationDateはLDAP://ではなくWijnNT://でとってこないと いけないんですね。GetUserNameExでユーザ名を取得する事にしました^^) 本当にありがとうございました!! 参考にする人はいないと思いますが、作成したソースを抜粋しておきます。 IADsUser *lpIADsUser; WCHAR *l_pwUserPath = NULL; DATE l_PasswordExpirationDate; SYSTEMTIME l_stPasswordExpirationDate; WCHAR UserName[1024]; DWORD lenUserName; //「domain\user」でユーザ名を取得 GetUserNameEx(NameSamCompatible, UserName, &lenUserName); //「\」→「/」に置換(「domain/user」にする) for(;lenUserName > 0; lenUserName--) { if(UserName[lenUserName] == L'\\') { UserName[lenUserName] = L'/'; } } //ADSIで情報を取得するための文字列を作成() l_pwUserPath = new WCHAR[lstrlen(L"WinNT://") + lstrlen(UserName) + 1]; if(l_pwUserPath == NULL) { return FALSE; } lstrcpy(l_pwUserPath, L"WinNT://"); lstrcat(l_pwUserPath, UserName); l_pwUserPath[lstrlen(L"WinNT://") + lstrlen(UserName)] = L'\0'; //ユーザ情報を取得 if(FAILED(ADsGetObject(l_pwUserPath, IID_IADsUser, (void**) &lpIADsUser))) { //各種解放処理 if(l_pwUserPath != NULL) { delete[] l_pwUserPath; l_pwUserPath = NULL; } return FALSE; } //パスワード有効期限取得 if(FAILED(lpIADsUser->get_PasswordExpirationDate(&l_PasswordExpirationDate))) { MessageBox(NULL, L"パスワード有効期限取得失敗", L"Debug", MB_OK); //各種解放処理 if(l_pwUserPath != NULL) { delete[] l_pwUserPath; l_pwUserPath = NULL; } return FALSE; } //(必要があれば)VARIANT Time をSystemTimeに変換 // VariantTimeToSystemTime((DOUBLE)l_PasswordExpirationDate, &l_stPasswordExpirationDate); //各種解放処理 lpIADsUser->Release(); if(l_pwUserPath != NULL) { delete[] l_pwUserPath; l_pwUserPath = NULL; } return TRUE;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.