1

사용자가 자신의 AD 암호를 변경할 수있는 도구를 작성했습니다. 이 도구는 내 회사 도메인에서 문제없이 작동하지만, 시트릭스와 고객의 컴퓨터에 실행했을 때 다음과 같은 오류 메시지가 나타납니다C에서 암호를 변경하려고 할 때 액세스가 거부되었습니다. #

System.Reflection.TargetInvocationException : 호출 대상이 예외가 발생되었습니다. ---> System.UnauthorizedAccessException : 액세스가 거부되었습니다. (HRESULT 예외 : 0x80070005 (E_ACCESSDENIED)) --- 내부 예외 스택 추적 끝 --- System.DirectoryServices.DirectoryEntry.Invoke (String methodName, Object [] args)의 System.DirectoryServices.AccountManagement.SDSUtils에서 CitrixPWChangeBackend.ActiveDirectory.ChangePasswordForCurrentUser (문자열 oldPw 문자열 newPw 부울 & errorWrongPw에서 .ChangePassword (하여 DirectoryEntry 드를 OLDpassword 문자열, 문자열 NEWPASSWORD) System.DirectoryServices.AccountManagement.ADStoreCtx.ChangePassword에서 (AuthenticablePrincipal 피 문자열를 OLDpassword 문자열 NEWPASSWORD) , 부울 & errorPasswordRules, 문자열 & errorMessage)

이 오류를 일으키는3210

라인은 다음과 같습니다

UserPrincipal.Current.ChangePassword(oldPw, newPw); 

"oldPW"는 "마법"이유는 사실로 재산 "UserCannotChangePassword"를 일으키는 원인이 해당 사용자에 대한 정책이었다 물론

+0

동일한 사용자를 사용하여 도구를 성공적으로 실행할 수 있지만 고객의 컴퓨터 중 하나의 콘솔에 로그인 할 수 있습니까? 액세스가 거부 된 예외는 Citrix 환경에서 기대할만한 것이 아니기 때문에 Citrix를 배제하기 위해 그렇게하는 것이 좋습니다. – donovan

+0

그 동안 사용자가 UserCannotChangePassword 속성을 true로 설정했다는 것을 알았습니다. 관리자의 머리를 벗겨 내고 나서 다른 계정으로 코드를 올바르게 테스트 할 때까지 기다립니다. –

+0

고마워, 도노반. 그 이유는 예상대로 구성 측면에있었습니다. –

답변

3

의 올바른입니다. Citrix 특정 문제가 없습니다.

관련 문제