次の方法で共有


IADsUser::ChangePassword メソッド (iads.h)

IADsUser::ChangePassword メソッドは、ユーザー パスワードを指定された古い値から新しい値に変更します。

構文

HRESULT ChangePassword(
  [in]  BSTR bstrOldPassword,
  [out] BSTR bstrNewPassword
);

パラメーター

[in] bstrOldPassword

現在のパスワードを含む BSTR

[out] bstrNewPassword

新しいパスワードを含む BSTR

戻り値

このメソッドは、S_OKを含む標準の戻り値をサポートします。 詳細およびその他の戻り値については、「 ADSI エラー コード」を参照してください。

注釈

IADsUser::ChangePasswordIADsUser::SetPassword と同様に機能し、3 つの方法のいずれかを使用してパスワードの変更を試みます。 最初に、LDAP プロバイダーは、サーバーへのセキュリティで保護された SSL 接続が確立されている場合に、LDAP パスワード変更操作を試みます。 この試行が失敗した場合、LDAP プロバイダーは次に Kerberos の使用を試みます (フォレスト間認証を使用した Windows で発生する可能性のあるいくつかの問題については、「 IADsUser::SetPassword 」を参照)、これも失敗した場合は、最後に Active Directory 固有のネットワーク管理 API NetUserChangePassword を呼び出します。

Active Directory では、このメソッドを使用して パスワードを変更 するには、呼び出し元にパスワードの変更拡張制御アクセス権が必要です。

次のコード例は、ユーザー パスワードを変更する方法を示しています。

Dim usr As IADsUser
Dim szOldPass As String
Dim szNewPass As String

On Error GoTo Cleanup

Set usr = GetObject("WinNT://Fabrikam/JeffSmith,user")
' Add code to securely retrieve the old and new password.

usr.ChangePassword szOldPass, szNewPass

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

次のコード例は、ユーザー パスワードを変更する方法を示しています。

HRESULT ChangePassword(
    IADsUser *pUser, 
    LPWSTR oldPasswd, 
    LPWSTR newPasswd)
{
    HRESULT hr=S_OK;
    if(!pUser) { return E_FAIL;}
    hr = pUser->ChangePassword(oldPasswd, newPasswd);
    printf("User password has been changed");
    return hr;
}

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー iads.h
[DLL] Activeds.dll

こちらもご覧ください

ADSI エラー コード

IADsUser

IADsUser プロパティ メソッド