blog.icewolf.ch

Let's talk about IT!
posts - 1540, comments - 295, trackbacks - 0

My Links

Archives

Post Categories

icewolf

Monday, June 22, 2020

Active Directory Attributes for diffrent Mailbox Types

Hallo zusammen,

Für einen Analyse der ExchangeAttribute habe ich einige Mailboxen OnPrem angelegt. Ich habe die AD Objekte im Active Directory Users und Computers angelegt und dann mit dem Enable-Mailbox eine Mailbox angelegt

Von jedem Typ eine Mailbox:

  • User Mailbox
  • Room Mailbox
  • Equipment Mailbox
  • Shared Mailbox

Das selbe habe ich mit weiteren Accounts gemacht, jedoch mit dem Befehl Enable-RemoteMailbox. Damit werden nur ein paar Attribute im OnPrem AD erstellt. Nach dem AAD Sync werden durch diese Attribute die Mailboxen direkt in Exchange Online angelegt.

So sieht das im Active Directory aus.

Nachfolgend die AD Attribute der verschiedenen Mailboxtypen.

Mailbox Type msExchRecipientDisplayType msExchRecipientTypeDetails msExchRemoteRecipientType msExchUserAccountControl
User Mailbox (On-Prem) 1073741824 1 Null 0
Linked Mailbox (On-Prem) 1073741824 2 ?? ??
Shared Mailbox (On-Prem) 0 4 8 2
Room Mailbox (On-Prem) 7 16 Null 2
Equipment Mailbox (On-Prem) 8 32 Null 2
Mail User (On-Prem) 6 128 Null Null
Mail Contact (On-Prem) 6 Null Null Null
MailUniversalDistributionGroup (On-Prem) 1 Null Null Null
MailUniversalSecurityGroup (On-Prem) 1073741833 Null Null Null
Remote User Mailbox (O365) -2147483642 2147483648 1 Null
Remote Shared Mailbox (O365) -2147483642 34359738368 97 Null
Remote Room Mailbox (O365) -2147481850 8589934592 33 Null
Remote Equipment Mailbox (O365) -2147481594 17179869184 65 Null
Remote User Mailbox (Migriert) -2147483642 2147483648 4 0
Remote Shared Mailbox (Migriert) -2147483642 34359738368 100 2
Remote Room Mailbox (Migriert) -2147481850 8589934592 36 2
Remote Equipment Mailbox (Migriert) -2147481594 17179869184 68 2
Grüsse
Andres Bohren

posted @ Tuesday, June 23, 2020 11:36 PM | Filed Under [ Exchange ]

Get SamAccountName from Azure Active Directory by PowerShell

Hallo zusammen,

Für ein Projekt musste ich aus dem Azure Active Directory den SamAccountName auslesen.

Das Problem ist nur, dass dieses Property nicht so einfach über die PowerShell Module abgefragt werden kann. Hier das Beispiel vom MSOnline Modul

Get-MsolUser -UserPrincipalName a.bohren@icewolf.ch | fl

Auch beim PowerShell Modul AzureAD gibt es dieses Property nicht.

Get-AzureADUser -SearchString "a.bohren@icewolf.ch" | fl

Man kann dies jedoch über den Graph Explorer, sprich über das Graph API abfragen.

https://graph.microsoft.com/v1.0/users/a.bohren@icewolf.ch?$select=userPrincipalName,onPremisesSamAccountName

Um das ganze mit PowerShell abzufragen braucht es eine App Registration im Azure AD. Dort benötigt man das "User.Read.All" recht und einen Admin Consent.

 Mit folgendem Code holt man sich den Accesstoken

$AppId = '449e6fed-e858-437e-ba9f-769773106786'
$AppSecret = 'geheimesAppSecret'
$Scope = "https://graph.microsoft.com/.default"
$TenantName = "icewolfch.onmicrosoft.com"
$Url = "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token"
 
# Create body
$Body = @{
    client_id = $AppId
    client_secret = $AppSecret
    scope = $Scope
    grant_type = 'client_credentials'
}
 
# Splat the parameters for Invoke-Restmethod for cleaner code
$PostSplat = @{
    ContentType = 'application/x-www-form-urlencoded'
    Method = 'POST'
    # Create string by joining bodylist with '&'
    Body = $Body
    Uri = $Url
}
 
# Request the token!
$Request = Invoke-RestMethod @PostSplat
$AccessToken = $request.access_token

Nun kann das Query abgesetzt werden

#SamaccountName V1
$headers = @{"Authorization" = "Bearer "+ $AccessToken}
$uri = "https://graph.microsoft.com/v1.0/users/a.bohren@icewolf.ch/?$select=userPrincipalName,onPremisesSamAccountName"
$AADUser = Invoke-RestMethod -Method GET -Uri $uri -Headers $headers
$AADUser
$AADUser.onPremisesSamAccountName

Wie es scheint, ist das Property aber erst in der Graph Beta API drin

#SamaccountName BETA
$headers = @{"Authorization" = "Bearer "+ $AccessToken}
$uri = "https://graph.microsoft.com/beta/users/a.bohren@icewolf.ch/?$select=userPrincipalName,onPremisesSamAccountName"
$AADUser = Invoke-RestMethod -Method GET -Uri $uri -Headers $headers
$AADUser
$AADUser.onPremisesSamAccountName

Für mich ein bisschen verwirrend, dass der Graph Explorer die V1 API anzeigt und dort das Property zurück liefert.

Liebe Grüsse
Andres Bohren

posted @ Monday, June 22, 2020 11:23 PM | Filed Under [ Powershell Azure ]

Powered by:
Powered By Subtext Powered By ASP.NET