如何从 Active Directory 查询当前用户的信息?
我知道我可以从 Windows 访问有关当前用户的很多信息,例如环境变量等。我可以获得当前用户的用户名和域,但是我需要在 AD 中查找相应的记录吗?
我尤其想确保我能唯一标识AD 中的当前用户,因为此脚本必须处理大量用户,并且任何潜在的歧义都很难通过编程解决。最好的方法是什么?
答案1
如果你想在 PowerShell 中执行此操作,假设你已经加载了 ActiveDirectory 模块(ipmo ActiveDirectory
),你可以这样做
Get-ADUser ($env:UserName)
登录用户名在域上应该是唯一的,并且Get-ADUser
默认使用当前域
答案2
经过一番探索,我偶然发现了这个小东西美丽,来自 .NET API:
public static UserPrincipal Current { get; }
自 以来,此功能一直受支持.NET 3.5
,因此它也非常适合较旧的 Windows 操作系统。在 PowerShell 中,它可以像这样使用:
# Load in the Assembly for this stuff
[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices.AccountManagement") | Out-Null
Function Get-CurrentUser {
[System.DirectoryServices.AccountManagement.UserPrincipal]::Current
}