【问题标题】:How to get an Azure Active Directory username in Windows Powershell?如何在 Windows Powershell 中获取 Azure Active Directory 用户名?
【发布时间】:2017-09-12 14:11:28
【问题描述】:

我正在尝试在已加入 Windows 10 Azure Active Directory (AAD) 的计算机上从 Powershell 获取当前的 Windows 用户名和域。

我已经尝试了this question 的提示,但它们似乎都不适用于加入 Azure Active Directory 的计算机。

例如对于用户:Jonathan Doe, john@example.com 你只会得到用户的专有名称和AzureAD(不是他们的用户名或“真实”域):

$env:UserName --> JonathanDoe
$env:UserDomain --> AzureAD
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name --> AzureAD\JonathanDoe

有人知道如何获取用户实际凭据或特定 Azure AAD 域的任何部分吗? (例如johnexample.com 或理想情况下john@example.com

【问题讨论】:

    标签: powershell azure azure-active-directory


    【解决方案1】:

    我不确定这是多么正式,但我在注册表中找到了一个链接,其中包含用户名 user@company.com。这是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IdentityStore\Cache\xxx\IdentityCache\xxx. 下的密钥名称是用户名。您可以使用built-in powershell registry provider 导航到此注册表项。

    【讨论】:

    • 在该注册表区域中似乎有多个具有非常相似信息的键。但是,我想您可以在找到的第一个中将 $Env:Username 与 SAMName 进行匹配。有点臭代码:-)
    【解决方案2】:

    您可以在PowerShell中运行以下命令,输出将以UPN格式显示用户名。您可以从中获取用户名和域名。

    whoami.exe /UPN
    

    此外,“whoami.exe”程序还提供了许多其他参数,用于获取有关当前用户的其他信息。您可以键入以下命令以获取有关“whoami.exe”的更多详细信息。

    whoami.exe /?
    

    【讨论】:

    • 最有用但运行命令行工具并捕获输出是一个常见的过程,它总是带有软糖的味道。任何人都知道实现与 whoami.exe /UPN 相同的 .NET 或 WinAPI 调用?
    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 2019-12-19
    相关资源
    最近更新 更多