Получить имя учетной записи Microsoft для текущего пользователя в powershell - PullRequest
0 голосов
/ 01 декабря 2018

Как я могу получить имя пользователя учетной записи Microsoft для текущего пользователя в PowerShell?Я вижу, как получить локальное имя пользователя (например, $ env: имя пользователя и тому подобное), но не имя учетной записи Microsoft (обычно это адрес электронной почты).Спасибо за любую помощь!Ari

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

, если вы ищете эту информацию для своего персонального ноутбука (вне домена, o365 или AD), попробуйте эти ключи реестра .:

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

Get-ChildItem Registry::HKEY_USERS\.DEFAULT\Software\Microsoft\IdentityCRL\Stored Identities\ | select pschildname

Get-ChildItem Registry::HKEY_USERS\*\Software\Microsoft\IdentityCRL\UserExtendedP roperties\* | select pschildname

Я считаю, что Microsoft захватывает строку вашего электронного письма, чтобы создать учетную запись пользователя, чтобы вы могли сделать что-то вроде этого, чтобы вычислить, что в данный момент зарегистрировано в электронной почте пользователя:

get-childitem hkcu:\Software\Microsoft\IdentityCRL\UserExtendedProperties\ | where{$_.pschildname -like "*$env:USERNAME*"} | select pschildname

Дайте мне знать, если это не сработает.

0 голосов
/ 01 декабря 2018

Если под Microsoft account username вы подразумеваете имя входа, используемое для 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

или что-то вроде:

$msAccountName = ([adsisearcher]"(samaccountname=$env:USERNAME)").FindOne().Properties.mail

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...