如果 Windows 7 域用户的用户名存储在 Active Directory 中(例如RoseRoss
),那么如何获取该用户名,而不是他们在登录工作站时碰巧输入的任何情况(例如roseross
或rOsErOSs
或其他)?
是否存在某种设置可以强制%USERNAME%
环境变量始终使用规范的 Active-Directory 大小写?
对于本办公室的一些用户来说,%USERNAME%
登录时总是会输入该信息。
对于其他用户,%USERNAME
直到最近一直处于规范情况(对于用户登录时elenasimpson
返回ElenaSimpson
),但上周神秘地开始只这样做有时其余时间则按输入内容返回。重启通常会切换到其他行为。
因此,我想要一种始终强制执行规范大小写行为的方法%USERNAME%
,或者能够忽略该环境变量并找到另一种方法来获取规范 Active-Directory 大小写的用户名。
谢谢。
答案1
此答案属于您从 AD 查询用户名的第二个选项。如果您愿意使用 powershell 解决方案,则有几种选择。
您的情况感觉像是您想从每个用户工作站执行此操作,而 PS AD 模块可能并不总是在这些目标上可用。在这种情况下,您可以获得相同的信息,如下所示:
([adsi]"WinNT://$env:userdomain/$env:username,user").name
RoseRoss
如果有 AD 模块可用,您可以这样做。
(get-aduser -id $env:username).samAccountName
RoseRoss