For more detailed information:
import ctypes
def get_data(EXTENDED_NAME_FORMAT: int):
GetUserNameEx = ctypes.windll.secur32.GetUserNameExW
data = EXTENDED_NAME_FORMAT
size = ctypes.pointer(ctypes.c_ulong(0))
GetUserNameEx(data, None, size)
nameBuffer = ctypes.create_unicode_buffer(size.contents.value)
GetUserNameEx(data, nameBuffer, size)
return nameBuffer.value
print("NameUnknown : ", get_data(0))
print("NameFullyQualifiedDN : ", get_data(1))
print("NameSamCompatible : ", get_data(2))
print("NameDisplay : ", get_data(3))
print("NameUniqueId : ", get_data(6))
print("NameCanonical : ", get_data(7))
print("NameUserPrincipal : ", get_data(8))
print("NameCanonicalEx : ", get_data(9))
print("NameServicePrincipal : ", get_data(10))
print("NameDnsDomain : ", get_data(12))
example output:
NameUnknown :
NameFullyQualifiedDN : CN=Tomasevic Milovan (TomasevicM),OU=Engineering,DC=Microsoft,DC=Com
NameSamCompatible : Microsoft\TomasevicM
NameDisplay : Tomašević Milovan
NameUniqueId : {4fa050f0-f561-11cf-bdd9-00aa003a77b6}
NameCanonical : Microsoft.Com/Engineering/Tomasevic Milovan (TomasevicM)
NameUserPrincipal : TomasevicM@Microsoft.Com
NameCanonicalEx : Microsoft.Com/Engineering Tomasevic Milovan (TomasevicM)
NameServicePrincipal :
NameDnsDomain : Microsoft.Com\TomasevicM
Constants
NameUnknown
: An unknown name type.
NameFullyQualifiedDN
: The fully qualified distinguished name (for example, CN=Jeff Smith,OU=Users,DC=Engineering,DC=Microsoft,DC=Com).
NameSamCompatible
: A legacy account name (for example, Engineering\JSmith). The domain-only version includes trailing backslashes ().
NameDisplay
: A "friendly" display name (for example, Jeff Smith). The display name is not necessarily the defining relative distinguished name (RDN).
NameUniqueId
: A GUID string that the IIDFromString function returns (for example, {4fa050f0-f561-11cf-bdd9-00aa003a77b6}).
NameCanonical
: The complete canonical name (for example, engineering.microsoft.com/software/someone). The domain-only version includes a trailing forward slash (/).
NameUserPrincipal
: The user principal name (for example, someone@example.com).
NameCanonicalEx
: The same as NameCanonical except that the rightmost forward slash (/) is replaced with a new line character (\n), even in a domain-only case (for example, engineering.microsoft.com/software\nJSmith).
NameServicePrincipal
: The generalized service principal name (for example, www/www.microsoft.com@microsoft.com).
NameDnsDomain
: The DNS domain name followed by a backward-slash and the SAM user name.
Requirements
- Minimum supported client: Windows 2000 Professional [desktop apps only]
- Minimum supported server: Windows 2000 Server [desktop apps only]
- Header: secext.h (include Security.h)