Ho il nome di accesso alla rete di un utente. Da PowerShell e WMI è possibile ottenere un'e-mail valida per quell'utente? Si noti che il nome di accesso è diverso dal nome nell'e-mail, quindi non posso semplicemente combinare il nome di accesso con il dominio di posta elettronica.Ottieni l'indirizzo email di un utente dal nome utente tramite PowerShell e WMI?
risposta
Il modo più semplice è utilizzare Directory attiva.
Poiché si utilizza il tag PowerShell e non PowerShell V2.0 è possibile utilizzare ADSI.
Clear-Host
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://WM2008R2ENT:389/dc=dom,dc=fr","[email protected]","Pwd")
# Look for a user
$user2Find = "user1"
$Rech = new-object System.DirectoryServices.DirectorySearcher($dn)
$rc = $Rech.filter = "((sAMAccountName=$user2Find))"
$rc = $Rech.SearchScope = "subtree"
$rc = $Rech.PropertiesToLoad.Add("mail");
$theUser = $Rech.FindOne()
if ($theUser -ne $null)
{
Write-Host $theUser.Properties["mail"]
}
È anche possibile utilizzare userPrincipalName
anziché sAMAccountName
nel filtro, per userPrincipalName
è possibile utilizzare utente @ dominio modulo.
Utilizzando WMI: Se si vuole assolutamente farlo con WMI.
$user2Find = "user1"
$query = "SELECT * FROM ds_user where ds_sAMAccountName='$user2find'"
$user = Get-WmiObject -Query $query -Namespace "root\Directory\LDAP"
$user.DS_mail
È possibile utilizzare la seconda soluzione localy sul server o da un computer all'interno del dominio, ma è un po 'più complicato per l'autenticazione a WMI dall'esterno del dominio.
Utilizzando PowerShell 2,0
Import-Module activedirectory
$user2Find = "user1"
$user = Get-ADUser $user2Find -Properties mail
$user.mail
Ecco un altro modo possibile (original source):
PS> [adsisearcher].FullName
System.DirectoryServices.DirectorySearcher
PS> $searcher = [adsisearcher]"(objectClass=user)"
PS> $searcher
CacheResults : True
ClientTimeout : -00:00:01
PropertyNamesOnly : False
Filter : (objectClass=user)
PageSize : 0
PropertiesToLoad : {}
ReferralChasing : External
SearchScope : Subtree
ServerPageTimeLimit : -00:00:01
ServerTimeLimit : -00:00:01
SizeLimit : 0
SearchRoot :
Sort : System.DirectoryServices.SortOption
Asynchronous : False
Tombstone : False
AttributeScopeQuery :
DerefAlias : Never
SecurityMasks : None
ExtendedDN : None
DirectorySynchronization :
VirtualListView :
Site :
Container :
PS> $searcher = [adsisearcher]"(samaccountname=$env:USERNAME)"
PS> $searcher.FindOne().Properties.mail
Avevo bisogno solo delle ultime due righe in questa risposta perché funzionasse. –
Non WMI, ma questo può fare il lavoro altrettanto bene:
PS> ([adsi]"WinNT://$env:USERDOMAIN/$env:USERNAME,user").Properties["mail"]
- 1. Ottieni ID utente Facebook tramite indirizzo email
- 2. Genera un nome utente univoco dal nome e dal cognome?
- 3. Configurare l'autenticazione con nome utente anziché email
- 4. Assegna utente a AppPool IIS tramite PowerShell
- 5. Git cli: ottenere informazioni utente dal nome utente
- 6. Ottieni il nome utente Slack tramite l'API oAuth
- 7. Ottieni il nome utente dal plug-in Jenkins Workflow (Pipeline)
- 8. Symfony2 autenticazione/accesso tramite e-mail anziché nome utente
- 9. preg_match() e nome utente
- 10. Ottieni nome utente corrente in Julia (Linux)
- 11. Ottieni il nome utente in Autenticazione moduli
- 12. Ottieni un utente di Google App Engine dal proprio ID_utente
- 13. Memorizza password separatamente dal nome utente
- 14. Ottieni token utente facebook
- 15. Ottieni il nome utente corrente di Windows in Silverlight
- 16. django-allauth set nome utente uguale a email
- 17. Can Gitlab/Gitolite applica nome utente/email corretto
- 18. Indirizzo email come nome utente in accesso snn + ssh?
- 19. Firebase Android: crea un nome utente univoco
- 20. "Email non può essere vuoto" Elaborare utilizzando nome utente o email
- 21. PowerShell: Ottieni nome host FQDN
- 22. Ottiene automaticamente UID e GID dal nome utente in Unix?
- 23. L'output WMI di Powershell non corrisponde all'uscita WMI C#
- 24. android get gmail nome utente e password dal gestore account
- 25. Django, registrati utente con nome e cognome?
- 26. wget e htaccess: solo nome utente
- 27. Come modificare l'indirizzo email di un utente in modo "sicuro"?
- 28. Ottieni l'indirizzo email di Outlook tramite C#
- 29. Autenticazione di sicurezza Spring: ottieni il nome utente senza SPRING_SECURITY_LAST_USERNAME
- 30. Ottieni l'e-mail/nome utente di google in java?
Wow, che risposta completa! Grazie! La versione WMI funziona per me. Darò anche la versione 2.0 a provare. –