The following sample script will set an OperationReason on a group membership addition.
Appropriate distinguishedNames will need to be supplied:
$groupDN = "CN=group,OU=container,DN=domain,DN=local"
$memberDN = "CN=member,OU=container,DN=domain,DN=local"
$ADS_PROPERTY_APPEND = 3
$Group = [adsi]"EDMS://$groupDN"
$Group.InvokeSet("Control","OperationReason", $TRUE, "Some reason that will be shown in Change History")
$Group.PutEx($ADS_PROPERTY_APPEND, 'member', $memberDN) | Out-Null
$Group.CommitChanges()