共用方式為


IADsUser::ChangePassword 方法 (iads.h)

IADsUser::ChangePassword 方法會將用戶密碼從指定的舊值變更為新的值。

語法

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

參數

[in] bstrOldPassword

包含目前密碼的 BSTR

[out] bstrNewPassword

包含新密碼的 BSTR

傳回值

這個方法支持標準傳回值,包括S_OK。 如需詳細資訊和其他傳回值,請參閱 ADSI 錯誤碼

備註

IADsUser::ChangePassword 函式類似於 IADsUser::SetPassword ,因為它會使用三種方法之一來嘗試變更密碼。 一開始,如果已建立與伺服器的安全 SSL 連線,LDAP 提供者將會嘗試 LDAP 變更密碼作業。 如果此嘗試失敗,LDAP 提供者接著會嘗試使用 Kerberos (請參閱 IADsUser::SetPassword ,以瞭解在 Windows 上產生跨樹系驗證) 的一些問題,如果這也失敗,最後會呼叫 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 屬性方法