I hate it when I can't do something in pure batch. But, sometimes you just gotta bite the bullet and use another language. Here's a (choke, vomit) VBS script to return the logon name given a users human name.
And right now all of you that are saying "well that's retarded their username is just first initial last name" well not everyone rolls like that. Sometimes users get assigned random ass strings as their logon names and it gets pretty freaking annoying having to connect to the DC, find the user, look up their logon name.
You'll need to modify the LDAP address in the second to last part.
Now that I think about this I may have swiped this from somewhere else, I don't remember. If so sorry about not giving credit where credit is due...
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
strAnswer = InputBox("Please enter in Display Name for User you want Logon Name for:", _
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT sAMAccountName FROM 'LDAP://dc=ACME,dc=local' WHERE objectCategory='user' " & _
"AND displayName = '" & strAnswer & "'"
Set objRecordSet = objCommand.Execute
Do Until objRecordSet.EOF
Now that I think about it, I think I can do this in batch... I'll update this if I get time to do it.