检索当前域用户的全名

检索当前域用户的全名

使用 PowerShell,如何才能获取当前登录的域用户的全名(而不仅仅是其用户名),而不需要 ActiveDirectory 模块?

答案1

$dom = $env:userdomain
$usr = $env:username
([adsi]"WinNT://$dom/$usr,user").fullname

返回:

John Doe

还有一些其他 (大多数) 不太明显的属性。以下是一些有用的属性:

  • 北卡罗来纳大学 Homedrive
  • 回家的信
  • 描述
  • 登录脚本

尝试:

[adsi]"WinNT://$dom/$usr,user" | select *

答案2

我喜欢接受的答案,但只是因为我想自己尝试一下:

$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName

返回:

FullName
--------
TheCleaner

或者如果您希望不要标题信息而只显示结果:

$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName | ft -hide

答案3

使用Powershell 3.0的一个衬垫:

gwmi win32_useraccount | where {$_.caption -match $env:USERNAME} | select fullname | ft -HideTableHeaders

答案4

如果您一直拥有.Net 3.5 或更高版本(您应该使用 PowerShell v4.0 及更高版本):

Add-Type -AssemblyName System.DirectoryServices.AccountManagement;
$DisplayName = [System.DirectoryServices.AccountManagement.UserPrincipal]::Current.DisplayName;

[ADSISearcher]该类提供对所有常见 LDAP 属性的非常容易的访问,因此如果您想要一些 WinNT 未实现的扩展属性,您不需要查找两次(一次使用 WinNT,再次使用 LDAP)或使用执行 LDAP 搜索。

相关内容