Implemented it as follows: sub guid2uname { use MIME::Base64 qw(decode_base64); sub enc_hex { my @h = split(//,unpack('H*',decode_base64(shift))); my ($i, $out, $first); foreach $i(@h) {if (!$first){$out.="\\$i"; $first=1;} else {$out.=$i;$first='';}} return $out; } my $gu = enc_hex(shift); my $aq = Net::LDAPS->new("ldaps://pharmacy.pharmacy.arizona.edu") or return "FAIL LDAP ERROR $0"; my $rs=$aq->bind("$ldu\@pharmacy.arizona.edu", password=>$ldp) or return "FAIL BIND ERROR ".$aq->error; my $sb="DC=Pharmacy,DC=Pharmacy,DC=Arizona,DC=EDU"; my $fi = "(objectGUID=$gu)"; my $at = ['sAMAccountName']; my $m=$aq->search(base=>$sb,filter=>$fi,attrs=>$at); if ($m->count > 0){ my $un=$m->entry(0)->get_value('sAMAccountName'); return $un; } else { return "No Username for GUID ".encode_base64($gu); } }
and it worked for every user account. On Feb 19, 2021, at 2:23 PM, Bruce Johnson <john...@pharmacy.arizona.edu<mailto:john...@pharmacy.arizona.edu>> wrote: As a workaround I’m going to modify my original guid2uname method to use that format for searching. (using the search filter in the format you suggest does not return the expected LDAP records.) -- Bruce Johnson University of Arizona College of Pharmacy Information Technology Group Institutions do not have opinions, merely customs