Quantcast
Channel: Directory Services forum
Viewing all articles
Browse latest Browse all 31638

Reset password with History resulting in - "The server does not support the control. The control is critical."

$
0
0

I've followed what I believe to be the right steps from this article (only in powershell). I can't however get it to work. I've tried both controls and verified through adsiedit and ldp that I have both controls that I need. I'm sure I'm missing something quit simple here but would appreciate some help.

supportedControl (35):
  1.2.840.113556.1.4.2239 = ( POLICY_HINTS );
  1.2.840.113556.1.4.2066 = ( POLICY_HINTS_DEPRECATED );

When I set isCritical ("1.2.840.113556.1.4.2239", $byte, $true, $true) to true I get a failure of ...

Exception: System.Management.Automation.MethodInvocationException: Exception calling "SendRequest" with "1" argument(s): "The server does not support the control. The control is critical." --->
	System.DirectoryServices.Protocols.DirectoryOperationException: The server does not support the control. The control is critical.
	   at System.DirectoryServices.Protocols.LdapConnection.ConstructResponse(Int32 messageId, LdapOperation operation, ResultAll resultType, TimeSpan requestTimeOut, Boolean exceptionOnTimeOut)
	   at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
	   at CallSite.Target(Closure , CallSite , Object , Object )
	   --- End of inner exception stack trace ---
	   at System.Management.Automation.ExceptionHandlingOps.ConvertToMethodInvocationException(Exception exception, Type typeToThrow, String methodName, Int32 numArgs, MemberInfo memberInfo)
	   at CallSite.Target(Closure , CallSite , Object , Object )
	   at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
	   at System.Management.Automation.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame)
	   at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)

When I don't set isCritical ("1.2.840.113556.1.4.2239", $byte, $false, $true) I get a Success returned but the password hasn't been changed.

RequestId    :
MatchedDN    :
Controls     : {}
ResultCode   : Success
ErrorMessage :
Referral     : {}

This is what I'm doing

[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices.Protocols") | Out-Null [System.Reflection.Assembly]::LoadWithPartialName("System.Net") | Out-Null $SDPServer = $srv $SDPPort = 636 $SDPConnection = New-Object System.DirectoryServices.Protocols.LdapConnection -ArgumentList "$($SDPServer):$($SDPPort)" #Set session options $SDPConnection.SessionOptions.SecureSocketLayer = $true; $SDPConnection.SessionOptions.VerifyServerCertificate = { return $true;} #needed for self-signed certificates $SDPConnection.SessionOptions.ProtocolVersion = 3; $SDPConnection.AuthType = [System.DirectoryServices.Protocols.AuthType]::Basic #$SDPConnection.AuthType = [System.DirectoryServices.Protocols.AuthType]::Ntlm $netcred = new-object "System.Net.NetworkCredential" -ArgumentList $adsvc, $adpwd, $domain $SDPConnection.Bind($netcred) [byte]$byte = "0x1" #$control = new-object "System.DirectoryServices.Protocols.DirectoryControl" -ArgumentList "1.2.840.113556.1.4.2066", $byte, $true, $true $control = new-object "System.DirectoryServices.Protocols.DirectoryControl" -ArgumentList "1.2.840.113556.1.4.2239", $byte, $true, $true $request = new-object "System.DirectoryServices.Protocols.ModifyRequest" -ArgumentList $userDN $request.Controls.Add($control) | Out-Null $modification = New-Object "System.DirectoryServices.Protocols.DirectoryAttributeModification" $modification.Name = "userPassword" $modification.Operation = [System.DirectoryServices.Protocols.DirectoryAttributeOperation]::Replace $modification.Add($usrpwd) | Out-Null $request.Modifications.Add($modification) | Out-Null $result = $SDPConnection.SendRequest($request); $result


Viewing all articles
Browse latest Browse all 31638

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>