【问题标题】:How to get full name from domain name如何从域名中获取全名
【发布时间】:2021-08-30 21:28:01
【问题描述】:

不久前,我设法制作了一个 bat 文件,可以让我输入 somone 的用户名。 然后,它会在域中搜索全名,我可以将其用于其他工作。我使用的 bat 只会吐出全名并将其放入变量中。我知道我可以使用 net user /domain $username 命令,但据我所知,这并不能让你找出结果

不幸的是,我把它弄丢了,我什至可以完善我用来帮助我的教程。有谁知道如何做到这一点?几年前我在 Windows 7 机器上做过,我不确定这是否会改变什么。

【问题讨论】:

  • 我们还没有收到您的来信.. 任何给定的答案是否解决了您的问题?如果是这样,请通过单击左侧的 图标来考虑accepting。这将帮助其他有类似问题的人更轻松地找到它,并有助于激励其他人回答您将来可能遇到的任何问题。

标签: windows active-directory windows-10 command-prompt


【解决方案1】:

Powershell 是提取 AD 信息并将其导出的更好选择。使用 PS AD 模块,您可以执行类似于 Get-ADUser -filter $username -properties Name | Select-Object Name 的操作,从这里您可以将此信息存储在变量中或将其写入文件等。我还将链接到 AD 模块文档以供参考 Get-ADUser

【讨论】:

  • 试一试但出现错误:Get-ADUser : Cannot validate argument on parameter 'Filter'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. At line:1 char:20 + Get-ADUser -filter $username -properties Name | Select-Object Name + ~~~~~~~~ + CategoryInfo : InvalidData: (:) [Get-ADUser], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.GetADUser
  • -Filter 应该是一个字符串……好吧,Filters 用于某些属性等于或喜欢或不喜欢某物。此外,Get-ADUser 默认返回属性Name
【解决方案2】:

如果您的变量 $username 是用户的 SamAccountName,只需执行 PowerShell:

$user = Get-ADUser -Filter "SamAccountName -eq '$username'" -Properties DisplayName

您现在拥有一个具有以下用户属性的对象DistinguishedName, Enabled, GivenName, Name, ObjectClass, ObjectGUID, SamAccountName, SID, Surname, UserPrincipalName, DisplayName

只需要查询DisplayName,其他所有属性默认使用Get-ADUser返回

因此,如果您只需要 DisplayName(您称之为“FullName”),只需返回:

$fullName = (Get-ADUser -Filter "SamAccountName -eq '$username'" -Properties DisplayName).DisplayName

【讨论】:

  • 感谢您的意见。我实际上不确定如何使用它,尽管我习惯于命令提示符。我假设我必须把域名放在这里,然后它会给我全名。不过,我不知道该放在哪里。
  • @ChristopherMccullough 只需在 powershell 控制台中复制/粘贴并运行它。确保您的变量 $username 中包含有效的 SamAccountName。
  • 我可能有点过头了。我在 PowerShell 中运行了第一个命令,这个命令:$user = Get-ADUser -Filter "SamAccountName -eq '$username'" -Properties DisplayName 当我这样做时,我得到一个错误:Get-ADUser : The search filter cannot be recognized At line:1 char:9 + $user = Get-ADUser -Filter "SamAccountName -eq '$username'" -Properti ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Get-ADUser], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8254,Microsoft.ActiveDirectory.Management.Commands.GetADUser
  • @ChristopherMccullough 看起来您首先忘记了 Import-Module ActiveDirectory .. 您的变量 $username 到底是什么?那不是用户的帐号名吗?
猜你喜欢
  • 1970-01-01
  • 2014-02-09
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多