获取powershell中当前用户的microsoft帐户名

获取powershell中当前用户的microsoft帐户名,powershell,Powershell,如何在PowerShell中获取当前用户的Microsoft帐户用户名?我知道如何获取本地用户名(例如$env:username和其他类似的用户名),但不知道如何获取Microsoft帐户名(通常是电子邮件地址)。 谢谢你的帮助! Ari如果您所说的Microsoft帐户用户名是指用于Office 365的登录名,那么根据您设置O365帐户的方式,您可能需要EmailAddress或UserPrincipalName属性 使用PowerShellActiveDirectory模块,您可以这样做:

如何在PowerShell中获取当前用户的Microsoft帐户用户名?我知道如何获取本地用户名(例如$env:username和其他类似的用户名),但不知道如何获取Microsoft帐户名(通常是电子邮件地址)。 谢谢你的帮助!
Ari

如果您所说的Microsoft帐户用户名是指用于Office 365的登录名,那么根据您设置O365帐户的方式,您可能需要
EmailAddress
UserPrincipalName
属性

使用PowerShell
ActiveDirectory
模块,您可以这样做:

Import-Module ActiveDirectory
$currentUser = Get-ADUser -Identity $env:USERNAME -Properties EmailAddress, UserPrincipalName
$msAccountName = $currentUser.EmailAddress
# or $msAccountName = $currentUser.UserPrincipalName
您也可以通过“LDAP”方式执行此操作,而无需导入ActiveDirectory模块:

$msAccountName = ([ADSI]"LDAP://<SID=$([System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value)>").UserPrincipalName

希望这对您有所帮助

如果您希望查找个人笔记本电脑的此信息(域外、o365或AD),请尝试以下注册表项:

get childitem hkcu:\Software\Microsoft\IdentityCRL\UserExtendedProperties\| sele
ct pschildname

Get ChildItem Registry::HKEY_USERS\.DEFAULT\Software\Microsoft\IdentityCRL\Stored
标识\|选择pschildname

Get ChildItem注册表::HKEY_用户\*\Software\Microsoft\IdentityCRL\UserExtendedP
地产\*|选择pschildname

我相信Microsoft会捕获您的电子邮件字符串以创建一个用户帐户,这样您就可以这样做来计算当前登录用户的电子邮件:

get childitem hkcu:\Software\Microsoft\IdentityCRL\UserExtendedProperties\|其中{$\ pschildname类似“*$env:USERNAME*”}选择pschildname


如果不起作用,请告诉我

“$env:USERNAME@$env:USERDNSDOMAIN”
可能会根据您的DNS设置提供用户的电子邮件地址。什么是Microsoft帐户名?更重要的是:它存储在哪里。是不是电子邮件地址?可能是用户主体名称?无论解决方案是什么,如果它正常工作,对您都没有帮助;)好?给出的答案对你有用吗?若否,原因为何?如果答案确实对你有帮助,那就公平了。西奥,很遗憾,我无法使用其中任何一个来解析使用o365或AD环境之外的Microsoft帐户登录的用户的电子邮件地址。我所能得到的只是本地机器上的用户名。
$msAccountName = ([adsisearcher]"(samaccountname=$env:USERNAME)").FindOne().Properties.mail